Resale gains, three years of matched pairs
Every figure here comes from a matched buy and sell pair on the same physical apartment. The shoebox story turns out to be backwards, and the data is unusually firm about it.
This measures only units that sold twice. A flat bought in 2012 and still lived in contributes nothing. If owners sitting on a loss are slower to sell, and the standard reading of the market says they are, then every number on this page is flattering.
The 10.3% loss rate is a floor, not an estimate. We would rather say that at the top than print a figure that quietly assumes it away. Sub-sales are 181 of 7,169 sell legs (2.5%), too few to move anything.
Gains climb with size up to 1,100 to 1,399 sqft, then turn back down. This is a peak in the middle, not “bigger is better”, and the smallest units are not the winners the folklore claims.
Total gain over the whole holding period. Each bar carries its own n.
| Floor area | Sellers (n) | Median gain | Per year | Median hold | Typical buy to sell | Sold at a profit |
|---|---|---|---|---|---|---|
| Under 500 sqft | 920 | +13.6% | +1.53% | 9.7 yr | $670k to $760k | 86.6% |
| 500 to 699 sqft | 1,275 | +11.5% | +1.34% | 9.3 yr | $1.00m to $1.10m | 80.9% |
| 700 to 899 sqft | 1,042 | +20.1% | +2.21% | 9.1 yr | $1.20m to $1.45m | 90.2% |
| 900 to 1,099 sqft | 1,155 | +28.1% | +3.15% | 10.5 yr | $1.38m to $1.80m | 92.1% |
| 1,100 to 1,399 sqft | 1,664 | +46.0% | +4.12% | 11.7 yr | $1.35m to $2.10m | 96.4% |
| 1,400 to 1,799 sqft | 609 | +41.2% | +3.71% | 12.2 yr | $1.89m to $2.88m | 91.3% |
| 1,800 sqft and up | 504 | +30.8% | +2.95% | 13.1 yr | $2.98m to $4.10m | 85.1% |
The percentage column is the one worth sitting with. In the 500 to 699 sqft band close to one seller in five did not make money. At the peak, fewer than one in twenty.
Filled circle = sold at a profit. Hollow red ring = sold at a loss. Circles are rounded to the nearest 5%, so the exact rate and the n sit beside every row.
| Floor area | Sellers (n) | Sold at a profit | Sold at a loss | Roughly |
|---|---|---|---|---|
| Under 500 sqft | 920 | 86.6% | 13.4% | 1 in 7 lost money |
| 500 to 699 sqft | 1,275 | 80.9% | 19.1% | 1 in 5 lost money |
| 700 to 899 sqft | 1,042 | 90.2% | 9.8% | 1 in 10 lost money |
| 900 to 1,099 sqft | 1,155 | 92.1% | 7.9% | 1 in 13 lost money |
| 1,100 to 1,399 sqft | 1,664 | 96.4% | 3.6% | 1 in 28 lost money |
| 1,400 to 1,799 sqft | 609 | 91.3% | 8.7% | 1 in 11 lost money |
| 1,800 sqft and up | 504 | 85.1% | 14.9% | 1 in 7 lost money |
A percentage on a $670k shoebox and a percentage on a $2.98m unit are not the same cheque. The left dot is the typical earlier purchase, the right dot the typical resale.
Medians per band, not one seller's own two prices. Each row carries its n.
Both had to be ruled out before we would print any of the above. Bigger units are held longer, and more years means more gain regardless of size.
9.3 years at the bottom, 13.1 at the top. That alone would inflate the large bands. Each row carries its n.
So we grouped sellers by when they bought and compared sizes only inside each group, which flattens the holding-period gap to almost nothing. Then we split by tenure as well. Nine independent slices, one answer every time.
Every panel is median annualised gain, the only measure reported at this level of detail. Tap a size chip to trace one band across all nine panels.
median annualised gain · n = 1,011 in this panel
median annualised gain · n = 1,376 in this panel
median annualised gain · n = 1,619 in this panel
median annualised gain · n = 1,780 in this panel
median annualised gain · n = 1,383 in this panel
median annualised gain · n = 2,193 in this panel
median annualised gain · n = 2,203 in this panel
median annualised gain · n = 772 in this panel
median annualised gain · n = 945 in this panel
| Stratum | Under 700 | 700–1,099 | 1,100–1,399 | 1,400+ |
|---|---|---|---|---|
| Bought before 2008 | +2.72% (n=62) | +3.68% (n=267) | +4.00% (n=393) | +3.71% (n=289) |
| Bought 2008 to 2011 | +1.28% (n=439) | +2.09% (n=392) | +3.58% (n=304) | +2.30% (n=241) |
| Bought 2012 to 2015 | +0.87% (n=637) | +1.55% (n=495) | +2.94% (n=283) | +2.00% (n=204) |
| Bought 2016 to 2019 | +1.63% (n=606) | +3.09% (n=584) | +4.86% (n=373) | +4.57% (n=217) |
| Bought 2020 or later | +3.08% (n=451) | +4.50% (n=459) | +6.03% (n=311) | +5.82% (n=162) |
| Freehold, bought 2008 to 2015 | +1.14% (n=848) | +1.95% (n=618) | +3.23% (n=400) | +2.56% (n=327) |
| Freehold, bought 2016+ | +2.24% (n=777) | +3.81% (n=702) | +5.12% (n=423) | +5.10% (n=301) |
| Leasehold 99, bought 2008 to 2015 | +0.49% (n=216) | +1.27% (n=260) | +3.32% (n=183) | +0.82% (n=113) |
| Leasehold 99, bought 2016+ | +1.36% (n=278) | +3.29% (n=335) | +5.48% (n=256) | +4.15% (n=76) |
We expected to publish a gain-by-development-size table too. Then we checked what project size actually correlates with in Singapore. Step through what happened.
Total gain. Read top to bottom this looks like a clean, publishable decline. It is the wrong story.
Two things break it before you can publish it. Median buy year moves 2013 to 2019 across these bands and median hold falls 11.0 to 5.8 years, because Singapore only started building 1,000-unit developments recently. And the two thin cells, n = 101 and n = 31, reverse the trend outright. That is what a vintage artifact looks like, not a size effect.
A pair is two consecutive sales of the same unit, identified by project, block and unit. Block is in the key because 13,424 unit identifiers appear in more than one block of the same development, so “10-05” exists in Block 21 and in Block 23 and they are different apartments. Matching without block would have manufactured roughly 13,000 false pairs, each one a gain computed between two different homes.
Gain is resale price minus the earlier purchase price for that same unit, reported as a median, because a single penthouse drags an average somewhere useless. Annualised gain is (sell divided by buy) to the power of one over years held, minus one.
Reported rather than quietly dropped.
| Excluded | Size | Why |
|---|---|---|
| Units that never resold | the large majority | The main bias, named at the top of the page |
| HDB resale | 978,281 rows | No unit-number concept in the source |
| Landed | 83,328 rows | Keyed by address, no unit concept |
| No block recorded | 18.4% of private rows | Cannot prove both legs are the same apartment |
| No unit number | 1.7% of private rows | Same reason |
| Same-day repeat sales | 93 | Buy and sell order undefined |
| Floor area moved more than 5% | 140 | One leg is almost certainly a mismatch |
| Sell leg is a new sale | 608 | A developer sale after a prior sale is a data artifact |
| Unit count unknown | 124 pairs | Kept as its own row. Null beats a guess |