Accuracy & Methodology

In plain terms: on held-out resale transactions the model never saw during tuning, half of HDB estimates are within 3.06% of the actual sale price, and half of condo/EC estimates are within 3.77% — measured the same way lender-grade AVMs report accuracy, using only data from strictly before each target transaction's month. This page documents what the production code actually does, states the current limitations plainly, and keeps every past correction on the record.

Current benchmark — evaluated 27 Aug 2026
3.06%
HDB median abs. % error (resale)
100%
HDB valuation coverage
93.6%
HDB within ±10%
3.77%
Condo/EC median abs. % error (resale)
98.8%
Condo/EC valuation coverage
88.8%
Condo/EC within ±10%

Resale transactions only · strictly-prior-month comps · not the same rows used to tune the model · Condo/EC coverage is 98.8% (not 100%) because district-wide fallbacks withhold a point estimate rather than guess — see Known limitations and Update history below.

MetricHDB resaleCondo / EC resale
Median abs. % error (MdAPE) — headline3.06%3.77%
Valuation coverage (share of requests that return an estimate)100%98.8%
Within ±10% (PPE10)93.6%88.8%
Mean abs. % error (MAPE) — detail3.96%5.19%
P90 — detail8.49%10.45%
P95 — detail11.05%14.09%
Sample size (held-out transactions)3,00012,541
Evaluation date27 Aug 2026

Why the median, not the mean? Median absolute % error is the headline the AVM industry actually reports — CoreLogic, Clear Capital, and HouseCanary (a lender-grade AVM, the closest positioning match to this product) all lead with the median rather than the mean, because the mean is more sensitive to a handful of large misses. Mean MAPE, P90, and P95 stay published above for tail-risk detail.

How validation works

These figures come from a backtest, not a sales pitch. A real transaction is held out, the model re-values it the same way a live call behaves — using only transactions from strictly earlier calendar months, never the transaction's own month — and the estimate is compared to the actual price. The target's own transaction is never allowed to value itself, and it's structurally excluded from every derived feature it could otherwise influence (the monthly price index, storey/floor multipliers, vintage bands, and the comparable list itself) — not just dropped from the final answer.

These figures reflect resale transactions specifically. SG Property API is primarily a resale-market AVM for existing private residential properties, designed for lending, collateral, refinancing, and property-market decisions. New-launch developer pricing is a distinct commercial-pricing problem — driven by land and construction cost, margin targets, and launch strategy — and isn't the basis on which this AVM's performance should be judged. The HDB figures are resale by definition; the private residential figures above are measured on resale transactions only.

Deeper technical detail: the frozen data split & leakage prevention ▼

The frozen chronological split

Accuracy figures are only trustworthy if the test set was never used to tune the model. Data is split chronologically into three non-overlapping pieces: Development (≤ Dec 2024, where tuning and estimation happen), Validation (Jan–Jul 2025, used once per candidate configuration to pick among them), and an untouched forward-time test set (Aug 2025+, read exactly once for the final reported number — the figures above come from this set). The test set is month-uniform (stratified across all twelve months), excludes every row any prior tuning run touched, and is measured under the strictly-prior-month comp rule.

An internal audit (Aug 2026) found that an earlier version of these figures had been measured on a 500-transaction holdout the tuning process had effectively reused — every candidate configuration was evaluated against the same 500 rows, so the "holdout" had drifted into the tuning loop. The methodology was corrected; full detail is in Update history below.

Leakage prevention

The target's own transaction — and any transaction in the same or a later month — is structurally excluded from every derived feature it could otherwise influence: the monthly price index, the storey/floor multipliers, the vintage bands, and the final comparable list. This is enforced at the data-fetch level and covered by regression tests, not asserted in a comment.

Month-granular source data

Transactions are dated to their calendar month, not their day. Because the backtest excludes every same-month comparable, the within-month ordering ambiguity this granularity creates (two sales in the same month can't be proven to have preceded each other) does not affect these figures. On the live "value as of now" path, same-month transactions remain legitimate, real available information, exactly as a user would expect.

How this compares to industry reporting

The reporting format above is the same one lender-grade AVMs use. HouseCanary, CoreLogic, and Clear Capital all lead with a median error figure, report a share-within-tolerance band (±10% is the common PPE10 convention), and disclose valuation coverage alongside accuracy. Our figures are measured on the untouched, resale-only, strictly-prior-month test set described above — the format now matches industry convention; the underlying data and measurements are unchanged.

Current limitations

How estimates are built

Every valuation states which comparables it used, how they were weighted, and which method (comparable-based or regression fallback) produced the number — the evidence behind any estimate is visible, not just a single figure with no basis. The full response shape, including per-comparable detail, is in the docs.

HDB resale

Comparable sales are selected by distance and recency, widening the search only when needed to find enough of them. More recent, closer, and better-matched sales carry more weight in the final estimate.

Condo / EC / apartment

Comparables come from the same project when there's enough sales history, widening to nearby projects and then the district when there isn't. When a project's own history is too thin, a separately validated model fills the gap — the API response always states which method produced a given number, never a silent swap.

Update history

Every correction to these figures, in full, oldest concepts first. Expand any entry for the complete disclosure as originally published.

24 Aug 2026 — condo confidence labels recalibrated ▼

An internal diagnostic found "high" labels were under-performing "low" because the resale-share gate rewarded small Resale-heavy pools over the largest, New-Sale-heavy pools (which are the accurate ones). The project comp tier is now comp-count driven ("high" for the largest, best-supported pools), and MAPE-by-label is monotonic on the untouched test set (high 3.32% ≤ medium 4.35% ≤ low 6.50%).

23 Aug 2026 — validation-hygiene correction ▼

Figures corrected after an internal validation-hygiene audit found the prior condo figure (3.95% / 93.6% within ±10%) had been tuned on a reused holdout. The corrected, untouched-test numbers (then 4.42% / 91.8%) replaced the old ones. HDB's then-figure (3.72% / 97.0%) held within noise. Both were re-derived from the frozen test set whenever the model changed.

27 Aug 2026 — resale-only, strict-as-of standard ▼

Private-residential figures moved to a resale-only, strict-as-of standard. An internal investigation found the headline blended figures were inflated by new-launch transactions whose low error came from same-month sibling lookup (a new launch sells dozens of near-identical units in a tight window), and by same-month comps generally. The figures adopted that day are measured on resale transactions only, with comps restricted to strictly-prior months: HDB 3.96% mean MAPE / 93.6% within ±10% (n=3,000), condo/EC/apartment resale 5.46% mean MAPE / 88.1% within ±10% (n=12,675).

27 Aug 2026 (later the same day) — reporting standard switched to median ▼

The headline format switched from mean MAPE to the industry-standard median absolute % error (MdAPE), and hit rate (coverage) is now published as its own stat. The underlying resale figures are unchanged — the same strict-as-of backtest now leads with the median because CoreLogic, Clear Capital, and HouseCanary all report median error as their headline (the mean is more sensitive to a handful of large misses): HDB 3.06% MdAPE / 100% hit rate / 93.6% within ±10% (n=3,000), condo/EC resale 3.79% MdAPE / 99.9% hit rate / 88.1% within ±10% (n=12,675). Mean MAPE (HDB 3.96%, condo 5.46%), P90, and P95 remain published in the metrics table above for tail-risk detail.

27 Aug 2026 — Variant E radius reweighting + B2 district abstention ▼

Two changes shipped together, and the condo figures above were updated in the same pass because the second one changed coverage (the standing rule: never publish a MAPE without the coverage figure it is conditional on).

  • Variant E — historical-PSF radius reweighting. Radius-fallback valuations now reweight nearby-project comps by how similar each candidate project's historical price level is to the subject project's (as-of adjusted median PSF), instead of pooling every transaction inside the radius equally. On the frozen resale cohort this improved the fallback-eligible population (fewer than 5 prior same-project comps) from 12.44% to 11.21% mean MAPE (P95 42.2% → 34.2%) with no coverage change — the genuine accuracy improvement in the new numbers.
  • B2 — district-fallback abstention. Requests that resolve to the district-wide comp tier (an administrative boundary, not a comparable market; measured at 18.3% mean MAPE / 58.2% P95 on the frozen cohort) now return an explicit "insufficient comparable evidence" response instead of a point estimate. This is a reliability decision, not an accuracy improvement: 134 of 12,694 frozen-cohort targets (1.06%) are withheld, so the condo sample above is n=12,541 and valuation coverage is 98.8% (down from 99.9%). Every accuracy figure above is conditional on that coverage.

Net condo figures after the combined change (frozen resale cohort, resale-only, strictly-prior-month comps): 3.77% MdAPE / 98.8% valuation coverage / 88.8% within ±10%, mean MAPE 5.19% (conditional on coverage), P90 10.45%, P95 14.09%, n=12,541. The radius-reweighting improvement is genuine and coverage-neutral; the coverage and sample-size drop is the B2 abstention and is disclosed alongside it.

Terminology note, 2026-08-30: this stat was previously labeled "hit rate" throughout the site; relabeled "valuation coverage" to avoid confusion with the separate within-±10% accuracy figure above — no underlying number changed. Earlier entries in this history keep their original "hit rate" wording as an accurate record of what was published at each date.

SG Property API is operated by Smart Growth Technologies (UEN 53398715J). Built on public data.gov.sg HDB resale data and URA private residential transaction data. Not financial advice; valuations are estimates, not appraisals.