Singapore resale — the analyses nobody publishes.
236,959 real HDB resale transactions, 2017–2026, crunched for the angles most property sites skip: the storey premium curve, the lease-decay cliff, the flat-model premium, and the hidden floor-value gaps. Not median-price-by-town (boring) — the structural facts that change how you buy.
The data we used
A working analytics proof of concept. Real transactions pulled live from the free HDB Resale Flat Prices dataset on data.gov.sg, then crunched for the angles most listing sites never show.
Fields pulled per transaction: town, flat type, storey range, floor area (sqm), flat model, lease commencement, remaining lease, resale price. From these we derived price-per-sqm, storey midpoint, and lease years remaining, then computed robust medians per grouping. Every number below is a real computation from these 236,959 records, reproducible.
The storey premium curve
How much is height really worth? Most sites ignore floor level entirely. This is median price-per-sqm by floor band across all resale transactions — the headline finding of the POC.
Median price-per-sqm by floor band
| Floor band | Median psm (S$) | vs lowest |
|---|---|---|
| 01–05 | 4,984 | 0% |
| 06–10 | 5,231 | +5% |
| 11–15 | 5,469 | +10% |
| 16–20 | 6,347 | +27% |
| 21–25 | 7,243 | +45% |
| 26–30 | 8,611 | +73% |
| 31–35 | 10,000 | +101% |
| 36–40 | 10,000 | +101% |
| 41+ | 10,952 | +120% |
It is not linear. There is a clear premium jump at floor 16 (+27% vs ground) and again at floor 26 (+73%). Above floor 31 the premium caps near +100%. For buyers, the sweet spot of height with less premium is 11–15 (+10%) — most of the view benefit at a fraction of the 26+ premium. For sellers, units 16–20 command a disproportionate step up. This is the kind of analysis no listing site shows.
The lease-decay cliff
How does remaining lease hit price? Isolated within the same flat type to strip out the flat-type effect — here, 4-room flats. The cliff is sharpest in the 60–79 year band.
Median price-per-sqm by remaining lease — 4-room flats only
| Remaining lease | Median psm | vs 90+ |
|---|---|---|
| 90+ | 6,304 | 0% |
| 80–89 | 5,675 | −10% |
| 70–79 | 4,919 | −22% |
| 60–69 | 4,791 | −24% |
| 50–59 | 5,342 | −15% |
| 40–49 | 5,417 | −14% |
| Remaining lease | Median psm (4-room) | vs 90+ | Median psm (3-room) | vs 90+ |
|---|---|---|---|---|
| 90+ | 6,129 | 0% | 6,719 | 0% |
| 80–89 | 6,383 | +4% | 7,835 | +17% |
| 70–79 | 4,909 | −20% | 4,141 | −38% |
| 60–69 | 4,692 | −23% | 4,609 | −31% |
| 50–59 | 5,333 | −13% | 5,294 | −21% |
| 40–49 | 5,946 | −3% | 5,300 | −21% |
The lease cliff is real, and most severe in the 60–79 year band — roughly −20 to −30% vs a fresh 90-year lease, isolated within the same flat type. The 80–89 "bounce" is a composition effect (those units skew newer, larger, or more prime — not a true lease gain). For anyone worried about lease decay, the market already prices in the 60–79 cliff. A 3-room at 70–79 years leases at −38% vs fresh — the sharpest drop in the data. This is the "lease cliff" number anxious buyers care about, and nobody visualizes it cleanly.
The flat-model premium
Which designs hold value? Median price-per-sqm by flat model, vs the overall median of S$5,295. The model alone can swing price by 50%+ per sqm.
Median price-per-sqm by flat model
| Model | Median psm | vs median |
|---|---|---|
| Type S1 | 10,765 | +103% |
| Type S2 | 10,701 | +102% |
| Premium Apartment Loft | 9,485 | +79% |
| Terrace | 8,482 | +60% |
| DBSS | 8,238 | +56% |
| 2-room | 8,085 | +53% |
| Model A | 5,529 | +4% |
| Standard | 5,299 | 0% |
| Simplified | 5,179 | −2% |
| Improved | 5,135 | −3% |
| New Generation | 4,925 | −7% |
| Model A2 | 4,780 | −10% |
DBSS commands a +56% premium over standard models — the design-build-and-sell flats are priced well above typical HDB. The newer Type S1/S2 units (+100%+) reflect the recent BTO design premium. Improved and New Generation are the value buys. Buyers often fixate on town and flat type and ignore model — but the model can swing price by 50%+ per sqm.
True cost by town
Size-adjusted value ranking. Raw median price charts flatter towns because units differ in size — price-per-sqm is the honest comparator. All 26 towns, vs the overall median of S$5,295.
Median price-per-sqm by town
| Town | Median psm | vs avg | Town | Median psm | vs avg |
|---|---|---|---|---|---|
| CENTRAL AREA | 7,682 | +45% | SEMBAWANG | 5,273 | 0% |
| QUEENSTOWN | 7,502 | +42% | ANG MO KIO | 5,263 | −1% |
| BUKIT MERAH | 6,957 | +31% | HOUGANG | 5,221 | −1% |
| BUKIT TIMAH | 6,781 | +28% | BEDOK | 5,147 | −3% |
| BISHAN | 6,396 | +21% | BUKIT PANJANG | 4,909 | −7% |
| MARINE PARADE | 6,324 | +19% | JURONG EAST | 4,901 | −7% |
| KALLANG/WHAMPOA | 6,257 | +18% | YISHUN | 4,894 | −8% |
| CLEMENTI | 5,776 | +9% | PASIR RIS | 4,881 | −8% |
| TOA PAYOH | 5,769 | +9% | CHOA CHU KANG | 4,699 | −11% |
| PUNGGOL | 5,709 | +8% | WOODLANDS | 4,615 | −13% |
| GEYLANG | 5,636 | +6% | JURONG WEST | 4,578 | −14% |
| SERANGOON | 5,625 | +6% | |||
| TAMPINES | 5,341 | +1% | |||
| BUKIT BATOK | 5,324 | +1% | |||
| SENGKANG | 5,294 | 0% |
Size-adjusted, the premium towns are Central Area, Queenstown, Bukit Merah, Bukit Timah, Bishan. The value towns are Jurong West, Woodlands, Choa Chu Kang, Yishun, Pasir Ris. Raw median-price charts flatter these towns because the units differ in size — psm is the honest comparator.
Flat-type value ladder
Median resale price by flat type, and the % step-up between rungs. The biggest single jump is 3→4 room.
| Type | Median price | Step-up |
|---|---|---|
| 2 Room | S$310,000 | — |
| 3 Room | S$360,000 | +16% |
| 4 Room | S$510,000 | +42% |
| 5 Room | S$610,000 | +20% |
| Executive | S$725,000 | +19% |
The biggest value jump is 3→4 room at +42% — the single largest step in the ladder. If budget forces a choice, that is the premium step. (A multi-generation median near S$846,500 exists but is a tiny sample.)
The uncommon cross-cuts
The analyses that take the storey and lease findings and slice them by town — who pays most for height, and which towns punish old leases most. All figures below are 4-room, recent (2022+) transactions.
7a. Storey premium by town — who pays most for height?
Median psm of high-floor (16+) vs low-floor (1–5) units, 4-room, 2022+.
Height premium by town (4-room, high floor vs ground)
Height premiums vary wildly by town — +78% in Ang Mo Kio but roughly 0% in Pasir Ris and Marine Parade. In flat, mature towns high floors command huge premiums; in newer or coastal towns they are worth almost nothing extra. Buy a high floor in the wrong town and you overpay; in the right town it can be a strong investment. Nobody publishes this town-level storey map.
7b. Which towns discount old leases most?
Median psm of <70-year-lease vs 80+-year-lease 4-room flats, 2022+.
Discount for an old lease by town (4-room)
Central and mature towns punish old leases the most (Central Area −47%). Because the land value dominates there, lease decay cuts deepest. Yishun and Choa Chu Kang discount old leases the least (−15 to −18%), making them relatively safer for lease-conscious buyers. This refines the crude "lease cliff" into a town-aware risk map.
7c. Recent data confirms the height premium persists
The 2023–2026 slice still shows 11–15 floors around +10% and 16–20 around +27% vs ground within 4-room flats. The premium is structural, not a historical artifact.
What this proves
The point of the POC: free data plus a few hundred lines of pandas produces uncommon, actionable property analytics.
- The analyses most listing sites skip: storey premium curve, lease-decay cliff isolated by flat type, flat-model premium, size-adjusted town ranking, town-level height premiums, town-level lease risk.
- This POC runs entirely on free HDB resale data.
The same approach extends further:
- URA REALIS (paid) → private condos, landed, commercial.
- Cross-referencing MAS SORA (borrowing cost) + IRAS ABSD (tax) → true investment return per unit.
- OneMap geospatial → proximity and location factors.
- Time-series → forward-looking price momentum per town and type.
Next-step options worth exploring: a full interactive dashboard; the private-property layer via URA; a "find underpriced units" scanner built on the storey and lease cross-cuts.
Method & data
How every number was computed, and where the source data lives.
- Data: data.gov.sg HDB Resale Flat Prices collection (2017–2026), 236,959 transaction-level records, pulled via the datastore_search API. Source: dataset page.
- Derived fields: price-per-sqm (resale price ÷ floor area), storey midpoint from "01 TO 03" ranges, lease years from "NN years MM months".
- Metrics: median price-per-sqm per grouping (robust to outliers).
- Honest scope: URA private-property data (REALIS) is paid; this POC uses the free HDB resale data and extends to private via a REALIS subscription.
All figures are real computations from the live dataset and reproducible with the source file and a short pandas script.
Sources
data.gov.sg — HDB Resale collection (189)
URA REALIS (paid private-property data service)
URA's full transaction database sits behind a paid subscription; the free HDB resale data used here is open and transaction-rich.