Methodology
Every number on HomeVestor is computed from public data by a stated rule — no hand-waving, no opinions for hire. This page documents exactly how the market signal, the scores and the signal labels are derived, so you can judge them for yourself. Last updated 12 Jul 2026.
The market signal
The signal sentence on the market dashboard is assembled deterministically from the data on each refresh — there is no language model at runtime. Each clause maps to one rule:
| Clause | Rule |
|---|---|
| Momentum | Headline PPI q-o-q vs the prior quarter: moderating if lower by >0.1pp, accelerating if higher by >0.1pp, easing if negative, else steady. |
| Segment divergence | Spread between the strongest and weakest of CCR/RCR/OCR q-o-q. If ≥2.0pp, flagged uneven and the leader/laggards named. |
| Rent vs price | Market rent q-o-q vs PPI q-o-q: rents lagging (yields compress), outpacing (yield support), or tracking. |
| Supply pressure | Confirmed GLS supply vs the 10-year average, plus unsold inventory releasable within ~2 years. |
| Vacancy | Included only when a verified figure is available for the quarter; otherwise omitted (never estimated). |
| Closing frame | A generic risk-framing clause triggers when rents lag prices or segments diverge — data-descriptive, never a buy/sell instruction. |
As of 2026-Q2 flash (1 Jul 2026).
Yield
Gross yield = (median monthly rent psf × 12) ÷ median sale price psf for the same project over the trailing 4 quarters, with a minimum of 5 rental contracts and 8 sale caveats — otherwise the window is widened and labelled, or "insufficient data" is shown. The net-yield estimate deducts IRAS non-owner-occupier property tax (on AV ≈ annual rent), maintenance (<700 sqft $300/mo, 700–1,100 $380/mo, >1,100 $480/mo), a 5% vacancy allowance, agent fee ~4.2% of annual rent, and minor repairs 2%. Always shown as an estimate with the assumptions expandable.
Liquidity
Trailing-12-month resale caveats. Where the total unit count is known from URA sources, we normalise per 100 units: >6 deep · 3–6 moderate · <3 thin. Where unit count is unknown we show absolute counts only — we never estimate unit counts from third-party portals.
Signal labels
Data pages carry only a closed set of labels; each renders only when its trigger rule is met, and free-text verdicts never appear on data pages (only in clearly-marked, human-reviewed “HomeVestor view” boxes).
| Label | Triggers when |
|---|---|
| Yield-led | net-yield estimate in top quartile of segment |
| Liquidity-deep | >6 resale caveats per 100 units, trailing 12 mo |
| Liquidity-thin | <3 resale caveats per 100 units, trailing 12 mo |
| Resale discount vs new launch | median resale psf > 15% below comparable new-sale psf |
| New-launch premium nearby | comparable new-sale psf > 15% above resale |
| Growth-corridor | project falls in a curated URA growth corridor |
| Family-demand | top quartile of family-demand proxy |
| Lease-sensitive | 99-yr tenure with < 70 yrs remaining |
| Momentum watch | 12-mo median psf change beyond +/- 1 sigma of segment |
Honesty rules
Medians only (never means); $psf outliers and en-bloc rows excluded; thin samples flagged; recent quarters marked “may revise as late caveats lodge”; flash estimates marked as flash. On the district league table, the raw median can swing on low volume, so thin districts are flagged — the URA hedonic price index, not a raw median, is the authoritative price signal.
Data sources
URA Data Service (caveats, rentals — trailing 5 years), data.gov.sg (URA Property Price Index, HDB resale, supply), HDB, MAS (SORA, TDSR/LTV), IRAS (duties, property tax), MOE (schools), OneMap/SLA (maps), CPF. Regulatory parameters are verified at build time and stored with an as-of date. We do not use REALIS or any competitor portal as a source.