文章

从投资角度看新加坡 BTO 政策

平日饭间有同事聊到 BTO 政策,听下来是对公民一个特别优惠的购房政策,很多人排队抽签,于是花了点时间细了解下 BTO,从投资回报率的角度算下这个政策到底是有多大优待,也顺便学习下怎么计算这些指标

TL;DR:当公民确实爽…… 抽中 BTO 最后卖出的话,差不多年化 17% 的总资产回报率, 35% 的现金回报率

政策概述

BTO (Build-To-Order,预购组屋) 制度是新加坡建屋发展局 (HDB) 出售新组屋的主要模式。简单来说,就是“先根据需求销售,达到一定比例后才开始建造”

BTO 核心在于以显著低于市场价的价格,为新加坡公民提供拥有第一套住房的机会。最重要的优惠包括:

  • 显著的价格折扣: BTO 的新房定价通常显著低于周边的转售组屋和私人公寓,比周边 HDB 能折价 30%+
  • 额外安居津贴:根据家庭总收入,给 BTO 申请者的津贴补助,收入越低,津贴越高,最高可达 $80,000 SGD

本章节后面几部分是 BTO 具体的一些细则,不感兴趣可跳转至 #财务解构

受益群体

BTO的申请资格标准极为严格,其目的是确保政府的住房补贴能够精准地流向特定的公民群体,尤其是首次购房的家庭。

  • 申请人中至少有一位是新加坡公民(SC),并与至少另一位新加坡公民或新加坡永久居民(SPR)共同申请。建屋发展局(HDB)认可的家庭核心结构多样,主要包括:

    • 公共计划: 申请人与其配偶(及子女)、父母(及兄弟姐妹)或在合法监护下的子女组成。
    • 未婚夫妻计划: 允许计划结婚的情侣提前申请,但在领取新房钥匙后的三个月内必须提交结婚证书
    • 其他计划: 还包括针对单身人士、孤儿、非公民配偶等特殊群体的申请计划。
  • 年龄与收入顶限

    年龄和收入是另外两个关键的筛选门槛。申请人的最低年龄通常为21岁,但对于单身人士,则需年满35岁才能申请。更为重要的是收入顶限,它确保了BTO主要服务于中等及中低收入家庭,防止高收入群体挤占有限的补贴资源。目前的收入顶限标准为:

    • 购买4房式或更大型单位的家庭:家庭月收入总和不超过$14,000
    • 与大家庭/多代同堂家庭共同购买:家庭月收入总和不超过$21,000。
    • 购买3房式单位的家庭:收入顶限根据具体项目而定,通常为$7,000或$14,000。
    • 单身人士购买2房式灵活单位:月收入不超过$7,000。
  • 产权所有规定

    为确保BTO的公平性,政府规定申请人在申请前的30个月内不得拥有任何本地或海外的私人住宅产权

申请流程

BTO的申请流程是一个竞争激烈且基于概率的过程,而非先到先得。

  • 建屋局组屋资格鉴定书(HFE Letter)

    这是强制性的第一步。申请人必须首先获得HFE信函,该信函将一次性评估其购买新组屋或转售组屋的资格、可获得的公积金购屋津贴(CPF Housing Grants)以及HDB优惠贷款的资格与额度。这一前置审批流程简化了后续步骤,让申请人能提前明确自己的财务状况。

  • 抽签系统(Balloting System)

    在每次BTO销售活动期间,所有提交的申请都会进入一个电脑抽签系统,以随机方式决定申请者的选房顺序队列编号。申请提交的时间早晚不影响抽签结果。然而,这个看似完全随机的系统,实际上通过各种优先计划进行了精密的权重调整。

  • 作为政策杠杆的优先计划

    HDB设立了多种优先计划,以实现特定的社会目标,这些计划极大地影响了申请者的中签概率。例如:

    • 家庭与育儿优先计划(FPPS): 优先分配给有18岁以下子女的首次购房家庭以及年龄在40岁以下的年轻夫妇。
    • 已婚子女优先计划(MCPS): 鼓励年轻夫妇与父母同住或住在附近(4公里范围内),为符合条件的申请者预留高达30%的单位配额。

    这些计划的存在表明,BTO抽签不仅是分配资源的机制,更是政府引导社会行为的有力工具。通过为选择与父母同住或生育子女的家庭提供更高的中签机会,政府间接鼓励了家庭互助和人口增长,从而减轻社会在养老和育儿方面的压力。

  • 抽签后的流程

    中签的申请者将根据队列编号分批受邀前往HDB Hub选择单位。选定单位后,需支付一笔定金(Option Fee),金额从$500到$2,000不等,具体取决于单位类型。随后,申请人将签署购房协议(Agreement for Lease),正式锁定购买权。

EHG 津贴

额外安居津贴 (Enhanced CPF Housing Grant, 简称 EHG) 是目前新加坡政府为首次购房者提供的最核心、覆盖面最广的购房补助。适用于 BTO(新组屋)转售组屋 (Resale)

能拿多少钱

  • 家庭 (Couple/Family): 最高 $80,000 SGD,最低 $5,000 SGD
  • 单身 (Single): 最高 $40,000 SGD,最低 $2,500 SGD

这笔钱会直接存入 CPF 普通户头 (OA),直接用来扣除房款,减少以后每个月需要还的房贷金额。

EHG 的设计初衷是帮助中低收入家庭。因此,津贴金额与家庭平均月收入成反比:

家庭平均月收入 (过去12个月)可获得的 EHG 津贴
$1,500 或以下$80,000 (最高)
$3,000$65,000
$4,500$50,000
$6,000$35,000
$7,500$20,000
$9,000 (门槛)$5,000
超过 $9,000$0 (无资格)

除了收入不超过 $9,000 外,要拿到这笔钱,必须同时满足:

  1. 首次购房者: 申请的所有人必须都是第一次申请政府津贴。
  2. 持续就业 (最重要的一点):
    • 申请时,申请人和伴侣中至少有一人必须正在工作
    • 在申请前的 12个月内,必须有连续工作的记录。
    • HDB 会根据这 12 个月的平均收入来决定给多少津贴。
  3. 剩余屋契: 无论是 BTO (99年) 还是转售组屋,屋契必须足够覆盖买家中年轻一员至 95 岁。

最低居住年限(MOP)

最低居住年限(MOP)是管理BTO作为一项资产的最核心法规。它强制执行了政府“居者有其屋”的政策初衷,并有效抑制了短期投机行为。

  • 标准MOP 对于大多数BTO单位,MOP为期5年,从领取钥匙之日算起 。在此期间,屋主必须实际居住在该单位内。任何非居住时段,如经批准将整个单位出租,将不计入MOP的计算 。
  • MOP期间的限制 在MOP期间,屋主面临严格的限制 :
    • 禁止出售: 不得在公开市场上出售该组屋。
    • 禁止购买私人住宅: 不得在本地或海外购买任何私人住宅物业。
    • 禁止整套出租: 不得将整个单位出租,但允许出租单个房间。
  • 更严格的规则变体 为了应对黄金地段组屋过度升值带来的“彩票效应”,政府推出了“黄金地段公共住屋模式”(Prime Location Public Housing, PLH)。PLH模式下的组屋拥有长达10年的MOP,并且在出售时设有额外的限制,例如需要归还一部分购房津贴 。

财务解构

现金流

当我们要计算真实的年化回报率的时候,不能只看“买入价”和“卖出价”的差额,必须引入时间维度(资金占用的时长)和资金属性(现金 vs CPF OA)。

BTO 投资通常是一个 8-10 年 的周期(等待建房 3-5 年 + 最低居住年限 MOP 5 年),但假设符合 HDB 贷款的分阶段支付条件,第四年才会有大额支出,相比一般情况直接延后 3.5 年,年化回报相差巨大,这里整理了下购买 BTO 的时间线和对应收入/支出情况:

时间线阶段内容支出/收入细则
第 0 个月开始抽签,需要支付申请费 + 选房费$2000(以 4 房式为例,选房费可抵首付)
第 6 个月运气好抽中签的话,就可以签署租赁协议锁定 HDB 了
这一阶段需要支付首付 + 印花税 + 律师费
首付:
HDB 贷款为 25%(全 CPF,25 年新规),且符合条件可申请分阶段支付,银行贷款 25%(20% CPF + 5% 现金)
印花税:房价的前 $180k (1%) + 接下来的 $180k (2%) + 剩余部分 (3%-4%),可使用 CPF
律师费:约 $1000,可用 CPF
第 6 个月-4 年HDB 建设期,一般要盖 3-4 年这个阶段的资金流取决于你选择的贷款类型。
HDB 贷款: 零现金流出。在拿到钥匙前通常不需要开始还贷。
银行贷款: 累进式付款 。银行会根据建筑进度放款,需要开始偿还由于已发放贷款产生的利息
第 4-5 年拿钥匙 & 入住
这一阶段最主要开销为装修,少量杂费
杂费:火险、注册费等
装修:$30k - $80k
如果使用分阶段支付,第四年补剩下的 22.5% 首付
第 5-10 年持有期,等待 MOP 结束
此阶段开销包括月供、杂费、房产税
注,如果是 Prime/Plus 模式这一阶段需要 10 年
月供:主要是 CPF OA
杂费加房产税:每个月大概 $100
10 年+退出,回笼资金收入:市场转售价格
支出:
还清剩余贷款
回补 CPF + 累计利息(HDB 规定卖房时要把 CPF 和利息都补上)
中介费:2% + GST
律师费:$1500-$2000
Resale Levy:如果卖掉 BTO 去买另一套新组屋,需要支付高达 $40k+ 的 Levy
Clawback (仅限 Prime/Plus 模式): 如果 BTO 是 Prime 或 Plus 模式,政府会抽走转售价格的 6% - 8% 作为补贴回收

下面是详细的费用说明,不关注可以直接跳到 #投资回报率计算

前期费用

购买BTO涉及多项一次性前期费用,这些费用的总和构成了购房的初始资本门槛。

  • 首付款(Down Payment)

    首付款是最大的一笔前期开销,其具体要求取决于购房者选择的贷款类型,这是一个关键的财务决策点:

    • HDB建屋局贷款: 2024 后,首付款为房价的25%,这笔款项可以完全使用购房者的公积金普通户头(CPF OA)储蓄来支付,无需动用现金。
    • 银行贷款: 首付款房价的25%。其中,至少5%必须以现金支付,剩余的20%可以用CPF OA储蓄或现金支付。
  • 买方印花税(Buyer’s Stamp Duty, BSD)

    这是所有房地产交易都必须缴纳的税款。BSD采用累进税率计算,具体如下:

    • 房价的首$180,000:1%
    • 接下来的$180,000:2%
    • 再接下来的$640,000:3%
    • 剩余金额:4%

​ 虽然BSD必须在规定时间内缴纳,但购房者可以先用现金支付,之后再从自己的CPF OA中申请报销。

  • 法律费用(Legal Fees)

    处理购房法律文件的费用,也称为产权转让费。对于BTO交易,这笔费用通常在$2,000至$2,700之间 22。

  • 装修费用(Renovation Costs)

    BTO单位交付时通常是“空壳”状态,需要大量装修才能入住。根据2025年的市场估算,一个标准的4房式BTO单位的装修费用范围相当大,从$35,000到$61,800不等,具体取决于装修的复杂程度和所用材料的档次。

HDB贷款 vs. 银行贷款

贷款选择对购房者的长期财务健康和短期现金流有着深远影响。

  • 利率(Interest Rates)
    • HDB贷款: 提供一个稳定的优惠利率,该利率与CPF OA的利率挂钩,固定为CPF OA利率之上加0.1%。多年来,这一利率一直稳定在每年2.6%。
    • 银行贷款: 利率通常与新加坡隔夜平均利率(SORA)挂钩,或在初始几年内提供固定利率。在2025年中期的市场环境下,银行贷款利率具有竞争力,可能低于HDB的2.6%,大约在2.2%至2.5%之间。
  • 贷款价值比(Loan-to-Value, LTV)
    • HDB 贷款、银行贷款的 LTV 上限均为房价的 75%
  • 贷款年限(Loan Tenure)
    • HDB 贷款的最长年限为 25 年。
    • 银行贷款的最长年限可达 30 年,这虽然意味着每月的还款额较低,但总的利息支出会更高。
  • 罚金与灵活性
    • HDB贷款没有锁定期,允许屋主随时提前还款或再融资到银行贷款,而无需支付罚金。
    • 银行贷款通常设有2至3年的锁定期,在此期间提前还款会产生罚金。
特征HDB建屋局优惠贷款银行贷款
利率 (2025年)稳定在2.6% (与CPF OA利率挂钩)浮动或固定,约2.2% - 2.5%
利率稳定性极高,数十年来保持稳定较低,随市场波动或在固定期后转为浮动
最高贷款价值比 (LTV)75%75%
最低首付款25% (可完全由CPF OA支付)25% (至少5%需为现金)
最长贷款年限25年30年
提前还款罚金通常有2-3年锁定期
申请资格有收入顶限要求 (家庭$14,000)无收入顶限,但需通过银行信贷评估
理想借款人画像现金储蓄有限、寻求还款稳定性、风险规避型的首次购房者现金流充裕、愿意承担利率风险以换取潜在更低利率、或收入超过HDB顶限的购房者

分阶段首付

为了缓解年轻家庭的这种资金压力(并提高你的资金内部收益率 IRR),HDB 有一个非常重要的政策叫 Staggered Downpayment Scheme

(2024年6月新政): 为了进一步降低年轻夫妇的前期门槛,HDB 将分阶段首付的第一笔款项从 5% 降到了 2.5%

如果符合条件(通常是首次购房夫妇,申请时有一个人未满 30 岁),可以把首付拆成两次付:

时间节点支付比例资金量 (假设 $700k 顶配 BTO)资金来源
T = 6~9个月 (签租赁协议 Signing of Lease)2.5% (新政)$17,500CPF OA 优先,不足补现金
T = 4~5年 (拿钥匙 Key Collection)22.5% (余额)$157,500CPF OA 优先,不足补现金

这对于 IRR 模型意味着:

  1. 极低的前期锁资:

    只需要在 T=0.5 放入房价的 2.5%。对于顶格收入家庭($14k),这笔钱 ($17.5k) 仅相当于 2.5 个月的 CPF OA 进账(每月 $7k * 37% * 23% OA allocation ≈ $6k OA total 不对,修正计算如下)。

    • 两人 $14k 月入,每人 $7k (未达 $7.4k 上限)。每人 OA = $7,000 * 23% = $1,610。家庭月 OA = $3,220
    • $17,500 的首付,只需要家庭积累 5.5 个月的 CPF OA 就够了
    • 结论: 几乎不需要动用任何历史存量 CPF,仅靠这半年的新进账就够付第一期首付。
  2. 利息最大化:

    剩下的 22.5% ($157.5k) 可以继续留在 CPF OA 里吃 4 年 的 2.5% 利息。

    • 这 4 年产生的无风险利息约为 157,500 * 2.5% * 4 = $15,750
    • 这笔“赚到”的利息,在拿钥匙时可以用来支付杂费或部分装修。

持续的拥房成本

除了前期投入,持有BTO单位还涉及一系列持续性支出,这些支出直接影响房产的持有成本和未来的净现金流。

  • 房产税(Property Tax) 房产税根据房屋的年值(Annual Value, AV)以累进税率计算。AV是根据房屋在公开市场上的年租金估算得出的。税率因房屋是否由屋主自住而有天壤之别:
    • 自住税率: 2025年1月1日起,年值首$12,000的部分免税,超出部分从 4% 起征 。
    • 非自住税率: 税率要高得多,年值首$30,000的部分税率为12% 。这一差异对计算出租回报率至关重要。
  • 杂费(Service & Conservancy Charges, S&CC) 这是每月为市镇理事会(Town Council)支付的费用,用于公共区域的维护、清洁和升级。费用因市镇和单位类型而异 。

BTO的许多主要成本(如用 CPF 支付月供和印花税)对购房者来说是“无现金”交易。这种设计在心理上降低了购房的感知成本,鼓励了人们参与该计划。然而,这也可能掩盖了真实的财务承诺和被锁定的CPF资金的机会成本(这些资金本可以赚取至少2.5%的无风险利息)。通过将所有这些“隐性”和“显性”成本加总,才能揭示持有BTO的真实、全面的成本,从而形成一个比普遍认知更为现实的财务图景。

投资回报率计算

终于要开始计算了。。。。计算 IRR 之前,先做一些前提假设:

 具体假设
购房家庭家庭月收入 $14000 顶格,首次申请 BTO 且 申请人有一方年龄 < 30 (才能申请分阶段首付)
在这个前提假设下,市面上 BTO 房价都不会超过该家庭 HDB 优惠贷款上限,即不需要额外
房屋4-room HDB,最为常见
Stantard BTO,MOP 为 5 年,无补贴回收
贷款首付使用 HDB 优惠贷款,利率 2.6%,首付比例 25%;
加入分阶段首付计划,租赁协议时支付 2.5%,拿钥匙时支付 22.5%
首付全部由 CPF OA 账户支付
简单起见,忽略「$2000 选房费」的 6 个月时间成本,直接算到首付中
大概算了下,按顶格月收入,从申请 BTO 到交房的几年,积攒的 CPF OA 足以 Cover 大部分地域 HDB 首付
无风险利率使用当前 CPF OA 利率,2.5%
印花税按标准来,使用 CPF 支付,与首付同时支付
律师费$1000,使用 CPF
购房津贴家庭月收入 >$9,000 情况下,无津贴
装修考虑投资需求 & 5 年自住:
硬装按照标准型 $50,000 估算
软装按照 $10,000 估算
家电按照 $10,000 估算
卖出时,残值记为 0
月供从 CPF 支出算
维护开销每月 $250,现金,包括:S&CC 杂费、各种维护费等
房贷保险每年 $300,CPF 支出
房产税每年 $500,现金
租金节省考虑到大部分 BTO 购房者是与父母同住,故不考虑入住后由于租金减少而变相带来的「虚拟收入」,也不考虑出租出去
水电煤等生活支出,不考虑
卖出中介费2% + GST
卖出律师费$2,000
Resale Levy无,假设卖出后不再买入组屋
Clawback假设为 Standard BTO,Prime 和 Plus BTO MOP 要等 10 年,不考虑

有了这样的前提假设,剩下的就是筛选一些典型案例,代入计算了,案例选择上主要覆盖以下维度:

  1. 核心地段 : 高投入,高回报,高绝对利润。
  2. 热门非成熟区 : 中等投入,高增长率。
  3. 外围非成熟区: 低投入,稳健回报。

代码贴到 #附录 里了,大体逻辑是把现金流按时间线排列,然后构建一个折现现金流模型(NPV 函数),解出使 NPV 为零折现率,也就是 XIRR

案例 + 计算结果汇总如下:

典型案例买入价卖出价最终到手现金Project IRR
(总资产年化)
Cash-on-Cash IRR
(现金年化)
核心区 Queenstown (Dawson)
地标级建筑,成熟区天花板,MOP时恰逢市场大热
极高的绝对利润额,验证核心地段的抗通胀能力
$435k$965k$434,05118.73%40.86%
非成熟区 Punggol (Waterway)
标志性梯田设计,见证了榜鹅从“荒地”变成热门市镇的全过程
入场门槛极低,百分比涨幅巨大,验证新区发展的红利
$345k$700k$280,96314.33%28.62%
中部边缘 Kallang (St George)
靠近市区,地段极佳,疫情期间完工,正好赶上现在的高价转售市场
典型的“百万组屋”预备役,计算其现阶段的 IRR 极具参考价值
$475k$1,050k$470,12919.13%43.21%
东部成熟大盘 Tampines (GreenRidges)
大型项目,设施完善,代表了新加坡最广大中产阶级的投资路径
风险低,回报稳,适合作为基准模型 (Base Case)
$335k$815k$405,21420.28%38.86%
北部边缘 Woodlands (Admiralty)
远离市区,发布时价格极低,涨幅主要靠大盘带动

验证对于低收入或不想背高贷款的家庭,BTO 是否依然是好投资
$275k$585k$250,94714.22%25.59%
疫情延误 Punggol (Northshore)
新一代智能海滨组屋,但遭遇疫情严重施工延误
重点考察“时间拉长”对 IRR 的杀伤力。 虽然价格涨了,但建设期多了 2 年
$315k$750k$393,66619.20%38.00%

对比下来, Northshore 即使等待期多了两年,但 IRR 与其他地段相比并不逊色,主要还是得益于分阶段首付,交房前几年只有一笔 2.5% 的大额支出,所以等待期拉长一两年对年化收益影响不大

从整体上看,BTO 在过去的十年总资产年化大概 17% ,现金年化 35%,不愧是公民福利,大家排着队刮 BTO 彩票

另外考虑到,估算时候我是按照不出租房屋(MOP 允许出租部分房间)、不考虑入住后原本租房支出的减少;而实际上如果购买前原本有租房,或者选择出租一个房间,以 $2000/Month 估算,总资产年化将会来到 25%,现金年化达到 60%

那,未来呢?

回报率能否延续?

BTO 政策的核心是让公民折价买入组屋,相当于政府白送了 Alpha(超额收益,折价在 MOP 结束后收敛至 0),再加上整个组屋转售市场的大盘增长(Beta,市场收益),这两者共同决定了未来房产高增长是否能够延续。

另一方面,房贷政策,政府津贴等因素决定了买房者的杠杆率,叠加 MOP 直接影响到最终的 IRR

拆解一下:

  • BTO 发售时相对周边组屋流通市场有 30% 的折价,当 MOP 结束时,这 30% 折价完全收敛,5 年期的 MOP 带来超额收益年化达到 (1/0.7)^(1/5) - 1 = 7.4%,当然实际上还要加上建设期的 3-4 年,所以前面几个例子里,超额 Alpha 年化大概是 4.04%,如果 MOP 10 年,则超额年化降至 2.58%,MOP 的延长会摊薄 Alpha 的年化优势
  • 过去十年,整个组屋市场年化复合增长率(Beta)约 3.75%,这是房产投资的市场基线
  • HDB 贷款 LTV 上限为房价的 80%,即 5 倍杠杆;现行 LTV 75%,4 倍杠杆;杠杆的存在放大了资金回报率
  • 政府津贴会补贴一大笔钱到首付中,减少前期资金投入,变相增加了杠杆率
  • 分阶段首付允许购房者延后几年支付大部分首付,极大增加这部分资金的年化回报率
  • MOP 是杠杆的不利 Carry,杠杆效用会随时间边际递减,MOP 阶段负向现金流与 CPF 应计利息都会逐渐侵蚀 IRR

那从以上因素出发,看看未来这些因素会发生什么变化:

Alpha - 日趋收紧的 BTO 政策

Alpha 可以认为完全受新加坡政策影响,一旦政策收紧,超额收益就会急剧下降

从 2024 年底开始的新 BTO,核心地段被划分为 Plus 或 Prime,增加了很多限制:

  1. MOP 从 5 年强制变成 10 年,直接稀释了政府一次性折扣的年化优势
  2. 卖出时,必须将转售价的 6% - 9% 上交给政府,相当于大折价买入,小折价卖出
  3. Prime/Plus 的二手买家必须符合 BTO 收入资格(家庭月入 <$14k),意味着卖家无法把核心区的房子卖给高收入的“接盘侠”。转售价格的天花板被政策锁死,很难再出现天价组屋

也就是说,核心地段的资金回报率大幅降低,政府在主动抑制 BTO 投资行为,想要拿到高 Alpha 就只能选择 Standard BTO,放弃「核心地段」潜在的升值空间;而未来,如果 BTO 投机效应仍然显著,不难想象政府会持续收紧政策。

Beta - 组屋市场的未来增长

历史 Beta 参考

先来看过去 10 年 HDB 转售市场的 Beta 表现。根据 HDB 转售价格指数 (RPI) 计算:

时间段市场状态大致年化复合增长率 (CAGR) - Beta
过去 10 年全貌 (2014 Q3 - 2024 Q3)从高点回落 -> 停滞 -> 暴涨约 3.75% p.a.
拆解:失落的六年 (2014 - 2019)上一轮供应潮、政府重拳降温(TDSR、MSR 等)导致的价格回落约 -0.6% p.a. (负增长)
拆解:疫情暴涨期 (2020 - 2024)疫情 + 低利率驱动的快速上涨
疫情导致大量 BTO 项目因为疫情停工或降速,90+ 个项目延误,数以万计家庭被迫推迟拿钥匙
2020 之后全球大放水,新加坡房贷利率长期处于低位
2019 后 EHG 全面推广,至 2023 年发放约 15.6 亿新币给近 5 万户家庭,客观上增强了首购群体的购买力,在供应紧张下对价格形成支撑
**约 8.5% p.a. **

从 2023-2025,组屋市场总体仍在涨,但增速已经开始放缓

供给侧

从供给侧看,政府承诺在 2021 年到 2025 年间推出 10 万套新的 BTO,这个量级意味着什么?

  • 历史常态供应量
    • 在疫情前(例如 2018-2019 年),HDB 每年的 BTO 供应量大约在 15,000 - 17,000 套左右。这是一个供需相对平衡的“和平时期”常态。
    • 现在:平均每年 20,000 套。这意味着供应量比常态提高了 20% - 30%
  • 总库存占比
    • 目前全岛大约有 110 万套组屋。这 10 万套新房意味着在短短 5 年内,新加坡的总房屋库存增加了近 9% - 10%。对于一个成熟的房地产市场来说,这是一个巨大的增量。
  • 历史上的“救火行动”
    • 新加坡上一次出现如此大规模的供应潮是在 2011年 - 2014年(时任国家发展部长许文远时期)。当时为了扑灭 2008 年金融危机后房价暴涨的火,政府在短短 3-4 年内推出了超过 10 万套新组屋。
    • 结果: 那次海啸般的供应,直接导致了随后 HDB 转售市场长达 6 年的价格停滞甚至缓慢下跌 (2014 - 2019)。
    • 现在: 历史正在重演。这次的 10 万套,目标非常明确:彻底解决疫情导致的供应断层,用庞大的库存压制未来的价格暴涨预期。

这 10 万套是一个战略性的压舱石。意味着在未来的 5-8 年(当这些房子陆续满 MOP 进入转售市场时),市场将面临巨大的供应压力。这直接决定了未来的“Beta”很难再现过去几年的疯狂。

需求侧

人口、家庭数温和增长
  • 2025 年 6 月,新加坡总人口约 611 万,同比 +1.2%;过去 5 年(2020–2025)年化增速约 1.5%,比上一轮五年(2015–2020 的 0.5%)快很多。
  • 增长主要来自非居民(外籍劳工等),公民人口年增约 0.7%,PR 相对稳定。

本地居民房屋需求在缓慢往上走,但不会像某些移民大国那样失控;更多是“温和刚需+政策控制”的格局。

  • 2014–2024 十年间,本地居民家庭总数大约增加了 22%

  • 同期平均家庭规模从 3.47 人(2013)降到 3.11 人(2023),几乎所有住房类型都在“越住越少人”。
  • HDB 家庭里,平均户内人口从 3.4(2014)降到 3.0(2023),三人及以下家庭数量 2014–2023 增加约 38%

每个家庭住的人变少了,所以“家庭数增长”>“人口增长”,对“住房套数”的需求会持续偏强。


小家庭 / 单身需求增量

晚婚、不婚 + 超低生育率 → “一人/两人户”越来越多

  • 总和生育率 2024 年是 0.97,连续两年低于 1。

  • 25–49 岁居民“曾经结婚”的比例十年间略降,男从 67.5% → 65.9%,女从 75% 左右略降;首次结婚的年龄也在往后推(男 30.2 → 31.1,女 28.2 → 29.6)。

结果就是:更多 30+ 的单身 / DINK / 小家庭,会希望独立成户而不是一直跟父母住。

从政策上:

  • 2024 NDR 提出的 Family Care Scheme(FCS) 开始,政府明确要让 单身子女也能享受“靠近父母”买 BTO 的优先权

  • 2025 年中起,FCS(Proximity)上线:
    • 单身子女如果申请 BTO 与父母同住或住附近,也能享受优先配额;
    • 同时,配合新 Standard/Plus/Prime 框架,符合条件的单身首次购屋者可以在所有地段(包括 Prime/Plus)申请 2-room Flexi 新组屋,不再局限于“非成熟区”。
  • 未来 “单身 + 想住在父母附近” 会成为 BTO 报名里一个很大的细分需求池;
  • 很多原本只能在远郊买 resale、或者继续住家里的单身,会被“拉”进 BTO / 新组屋市场。

需求侧结构上,小户型(2-room / 小 3-room)的长期刚需会越来越硬。

人口老龄化 + “就地养老 / 换小房”

政府在 Forward SG 报告里反复提到:老龄化加剧,要在住房政策上支持“家庭各阶段”的需要。现实上会出现两类典型行为:

  • 一部分银发族希望“原址养老”
    • 不愿搬家,继续占用原来的 3/4/5 房;
    • 对社区熟悉、对楼下配套依赖高。
    • 这会延缓这批房源流回市场的速度,对供给形成收紧。
  • 另一部分会选择“卖大换小、搬到 MRT 旁或医疗配套强的地方”
    • 卖掉老 4/5 room,换 2/3 room、或 senior-friendly 的 2-room Flexi;
    • 搬到医疗、商场、地铁更方便的新社区。

需求侧视角:

  • 2/3 房在成熟区(尤其近医疗+MRT+商场)的需求会被银发换小族长期托着;
  • 同时,大户型旧屋的出清会比较慢,被“原址养老”拖住供应节奏。

未来 Beta 预估

在可见的 10–15 年里,HDB 的“居住型需求”整体还是偏强的,但结构会明显变化:小家庭 / 单身、银发族、会逐渐成为需求主力,纯投资/炒作型需求则会被政策越来越压缩。

综合考虑,新加坡政府的终极目标是让 HDB 价格涨幅略微跑赢通胀,且与家庭收入增长同步,以维持“可负担性”。

未来 5-10 年 HDB 市场 Beta 的理性预测区间:2.5% - 4.0% p.a.

  • 乐观情况 (4%): 经济强劲,收入大涨,政策松绑,能够消化掉巨大的供应量。
  • 中性情况 (3%): 房价随着通胀和工资温和上涨,是一个健康的慢牛市场。
  • 悲观情况 (2% 或更低): 类似于 2014-2019 年,供应过剩导致价格横盘多年,只能赚到通胀的钱。

杠杆率

长期来看,BTO 市场的金融约束基本不会放松:

  • TDSR / MSR 政策已经长期存在;
  • 2024 已经把 HDB 贷款 LTV 又从 80% 降到 75%,明确是为了应对 2024 年 9.6% 的 resale 涨幅,防止加杠杆追涨

政府在各个公开场合都说过一个目标:

希望房价长期“跟收入一起走”,而不是远远跑在前面。

这会直接约束购房者杠杆率,不太可能再回到过去那种高 LTV 加杠杆抢房的时代

总结

长期来看,一方面政府政策会限制超额收益 Alpha 和杠杆率,抑制投机行为,另一方面组屋市场将会从过热转为温和上涨,Beta 有所降低。

所以个人看法是,BTO 难以维持当前如此高的 IRR,按照 Standard BTO 9 年投资周期,3% 的 Beta + 4% 的 Alpha,估算下来,未来五到十年:

  • Project IRR (总资产年化): 10.61%
  • Cash-on-Cash IRR (现金年化): 20.92%

列个表格简单对比下:

 Project IRRCash-on-Cash IRR
历史 BTO 数据17%35%
未来投资回报估算10.61%20.92%

附录 - BTO IRR 计算代码

点击展开 ```python import numpy as np from scipy import optimize from datetime import date from dateutil.relativedelta import relativedelta # ========================================== # 1. 核心假设输入 (Inputs) # ========================================== class Assumptions: # 房产基础信息 purchase_price = 450000.0 # 买入价 selling_price = 800000.0 # 卖出价 (9年后) # 贷款信息 (HDB Loan) ltv = 0.75 # 贷款比例 (2025新政) interest_rate = 0.026 # 贷款利率 loan_tenure_years = 25 # 贷款年限 # 首付 (分阶段 Staggered) downpayment_1_ratio = 0.025 # 签约时 (T=0.5) # downpayment_1_ratio = 0.25 # 签约时 (T=0.5) downpayment_2_ratio = 0.225 # 拿钥匙时 (T=4.0) # downpayment_2_ratio = 0 # 拿钥匙时 (T=4.0) # 现金投入 (Cash Outlays) reno_furniture_cost = 70000.0 # 装修+家电 (T=4.0) monthly_service_fee = 250.0 # 杂费 S&CC # monthly_service_fee = -1750.0 # 杂费 S&CC yearly_property_tax = 500.0 # 房产税 # CPF 投入 (CPF Outlays) legal_fee_buy = 1000.0 # 买入律师费 yearly_hps_insurance = 300.0 # 房贷保险 cpf_interest_rate = 0.025 # CPF OA 年化利率 # 卖出成本 (Exit Costs) agent_fee_pct = 0.02 # 中介费 2% gst_rate = 0.09 # GST 9% legal_fee_sell = 2000.0 # 卖出律师费 # 时间轴 (关键!) months_construction = 48 # 建设期 4年 months_mop = 60 # MOP期 5年 total_months = months_construction + months_mop # 9年 # 测试场景一:纯静态数学验证 (The "CAGR" Test) # 目的: 验证 XIRR 算法本身是否正确,以及剔除杠杆后的资产增值逻辑。 原理: 如果没有贷款、没有杂费、没有装修。房产 9 年翻倍,IRR 应该等于单纯的年化增长率 (CAGR)。 # 代码应输出: Project IRR ≈ 8.01% class Assumptions2: # 房产基础信息 purchase_price = 100000.0 # 买入价 selling_price = 200000.0 # 卖出价 (9年后) # 贷款信息 (HDB Loan) ltv = 0 # 贷款比例 (2025新政) interest_rate = 0.0 # 贷款利率 loan_tenure_years = 25 # 贷款年限 # 首付 (分阶段 Staggered) downpayment_1_ratio = 1 # 签约时 (T=0.5) downpayment_2_ratio = 0 # 拿钥匙时 (T=4.0) # 现金投入 (Cash Outlays) reno_furniture_cost = 0.0 # 装修+家电 (T=4.0) monthly_service_fee = 0.0 # 杂费 S&CC yearly_property_tax = 0.0 # 房产税 # CPF 投入 (CPF Outlays) legal_fee_buy = 0.0 # 买入律师费 yearly_hps_insurance = 0.0 # 房贷保险 cpf_interest_rate = 0.025 # CPF OA 年化利率 # 卖出成本 (Exit Costs) agent_fee_pct = 0.0 # 中介费 2% gst_rate = 0.0 # GST 9% legal_fee_sell = 0.0 # 卖出律师费 # 时间轴 (关键!) months_construction = 48 # 建设期 4年 months_mop = 60 # MOP期 5年 total_months = months_construction + months_mop # 9年 class Assumptions3: purchase_price = 450000.0 selling_price = 450000.0 # 【关键】原价卖出 ltv = 0.75 # 正常贷款 interest_rate = 0.0 # 【关键】0利率 -> 借多少还多少 reno_furniture_cost = 0.0 # 无装修 monthly_service_fee = 0.0 yearly_property_tax = 0.0 agent_fee_pct = 0.0 # 无中介费 cpf_interest_rate = 0.0 # 【关键】CPF 不算利息 # params = Assumptions() # ========================================== # 2. 辅助计算函数 # ========================================== def calculate_monthly_payment(principal, annual_rate, years): """计算房贷月供 (PMT),增加对 0 利率的处理""" if principal == 0: return 0 if annual_rate == 0: return principal / (years * 12) # 修复: 0利率直接除 """计算房贷月供 (PMT)""" r = annual_rate / 12 n = years * 12 return principal * (r * (1 + r)**n) / ((1 + r)**n - 1) def calculate_stamp_duty(price): """计算印花税 (BSD)""" # 简化公式: 房价 > $360k return (price * 0.03) - 5400 def xirr(cashflows, dates): if not cashflows or not dates: return None start_date = dates[0] days = np.array([(d - start_date).days for d in dates]) values = np.array(cashflows) def npv(rate): # 防止负利率导致计算错误,增加微小偏移 safe_rate = rate if rate > -0.99 else -0.99 return np.sum(values / (1 + safe_rate) ** (days / 365.0)) try: return optimize.newton(npv, 0.1, maxiter=100) except: return 0.0 # ========================================== # 3. 主逻辑引擎 # ========================================== def run_simulation(p): # 初始化 loan_amount = p.purchase_price * p.ltv monthly_installment = calculate_monthly_payment(loan_amount, p.interest_rate, p.loan_tenure_years) stamp_duty = calculate_stamp_duty(p.purchase_price) # 现金流数组 dates = [] project_cf = [] # 总资产视角 equity_cf = [] # 纯现金视角 # 状态追踪 cpf_principal_used = 0.0 cpf_accrued_interest = 0.0 # 累计应计利息 loan_balance = loan_amount start_date = date(2025, 1, 1) # --- 循环每一月 (0 到 108) --- for month in range(p.total_months + 1): current_date = start_date + relativedelta(months=month) dates.append(current_date) # 当月现金流 (Net Cash Flow for this month) flow_project = 0.0 flow_cash = 0.0 cpf_outflow_this_month = 0.0 # 1. 之前已用 CPF 产生的利息滚动 (每月结算) monthly_cpf_interest = (cpf_principal_used + cpf_accrued_interest) * (p.cpf_interest_rate / 12) cpf_accrued_interest += monthly_cpf_interest # 2. 事件处理 # T = 0.5年 (第6个月): 签约 Signing Agreement if month == 6: dp1 = p.purchase_price * p.downpayment_1_ratio cpf_out = dp1 + stamp_duty + p.legal_fee_buy cpf_outflow_this_month += cpf_out flow_project -= cpf_out # Project IRR 计入 CPF 支出 # Cash IRR 不计入,因为全是 CPF # T = 4.0年 (第48个月): 拿钥匙 Key Collection & 装修 elif month == p.months_construction: dp2 = p.purchase_price * p.downpayment_2_ratio # CPF 支出部分 cpf_outflow_this_month += dp2 flow_project -= dp2 # 现金支出部分 (装修) - 这里是 Cash IRR 的重头戏 flow_project -= p.reno_furniture_cost flow_cash -= p.reno_furniture_cost # T = 4.1 ~ 9.0年: 供房期 (从第49个月开始) elif month > p.months_construction and month < p.total_months: # a. 房贷月供 (CPF) cpf_outflow_this_month += monthly_installment flow_project -= monthly_installment # b. 房贷利息计算 (用于更新贷款余额) interest_payment = loan_balance * (p.interest_rate / 12) principal_payment = monthly_installment - interest_payment loan_balance -= principal_payment # c. 现金杂费 (S&CC + 房产税分摊) monthly_cash_cost = p.monthly_service_fee + (p.yearly_property_tax / 12) flow_project -= monthly_cash_cost flow_cash -= monthly_cash_cost # d. 房贷保险 (CPF, 每年扣一次,简化为第一个月扣) if (month - p.months_construction) % 12 == 1: cpf_outflow_this_month += p.yearly_hps_insurance flow_project -= p.yearly_hps_insurance # T = 9.0 (第108个月): 卖出 Exit elif month == p.total_months: # 计算卖出成本 agent_fee = p.selling_price * p.agent_fee_pct * (1 + p.gst_rate) exit_costs = agent_fee + p.legal_fee_sell # 卖房总回笼 (Gross Proceeds) gross_proceeds = p.selling_price - loan_balance - exit_costs # Project IRR: 拿到的是总权益 (不减 CPF Refund) flow_project += gross_proceeds # Cash IRR: 必须减去归还给 CPF 的钱 (本金 + 利息) total_cpf_refund = cpf_principal_used + cpf_accrued_interest net_cash_proceeds = gross_proceeds - total_cpf_refund flow_cash += net_cash_proceeds # 记录数据供打印 results = { "gross_proceeds": gross_proceeds, "cpf_refund": total_cpf_refund, "net_cash": net_cash_proceeds, "loan_balance": loan_balance } # 3. 更新 CPF 累计本金 cpf_principal_used += cpf_outflow_this_month # 4. 存入数组 project_cf.append(flow_project) equity_cf.append(flow_cash) # 计算 IRR project_irr = xirr(project_cf, dates) cash_irr = xirr(equity_cf, dates) return project_irr, cash_irr, results, project_cf, equity_cf # ========================================== # 4. 运行并输出结果 # ========================================== # 装修费假设统一为 $70,000 (现金) # 杂费假设统一为 $100/月 (现金) # 房产税统一为 $500/年 (现金) # 建设期根据实际情况调整 real_world_scenarios = [ { "name": "Case 1: Queenstown (Dawson) - The Legend", "price": 435000.0, "sell_price": 965000.0, "construction_months": 60, # 约5年建设 "mop_months": 60, "total_years_approx": 10.0 }, { "name": "Case 2: Punggol (Waterway) - The Riser", "price": 345000.0, "sell_price": 700000.0, "construction_months": 54, # 约4.5年建设 "mop_months": 60, "total_years_approx": 9.5 }, { "name": "Case 3: Kallang (St George) - City Fringe Hot", "price": 475000.0, "sell_price": 1050000.0, "construction_months": 60, # 约5年建设 "mop_months": 60, "total_years_approx": 10.0 }, { "name": "Case 4: Tampines (GreenRidges) - The Benchmark", "price": 335000.0, "sell_price": 815000.0, "construction_months": 54, # 约4.5年 "mop_months": 60, "total_years_approx": 9.5 }, { "name": "Case 5: Woodlands (Admiralty) - Low Cost Entry", "price": 275000.0, "sell_price": 585000.0, "construction_months": 48, # 约4年 "mop_months": 60, "total_years_approx": 9.0 }, { "name": "Case 6: Punggol (Northshore) - COVID Delay", "price": 315000.0, "sell_price": 780000.0, # 预测价 "construction_months": 78, # 【关键】长达 6.5 年的等待 "mop_months": 60, "total_years_approx": 11.5 # 周期被严重拉长 }, { "name": "Case 7: Feature Estimate", "price": 335000.0, "sell_price": 615000.0, "construction_months": 48, # 约4年 "mop_months": 60, "total_years_approx": 9 }, ] for scenario in real_world_scenarios: params = Assumptions() params.purchase_price = scenario['price'] params.selling_price = scenario['sell_price'] params.months_construction = scenario['construction_months'] params.months_mop = scenario['mop_months'] params.total_months = params.months_construction + params.months_mop p_irr, c_irr, res, p_cf, e_cf = run_simulation(params) print(f"Scenario: {scenario['name']}") print("-" * 40) print(f"BTO 投资回报模型 (Python 版)") print("-" * 40) print(f"输入参数:") print(f"买入价: ${params.purchase_price:,.0f} | 卖出价: ${params.selling_price:,.0f}") print(f"装修投入 (T=4): ${params.reno_furniture_cost:,.0f} (现金)") print(f"持有周期: {params.total_months/12} 年") print("-" * 40) print(f"【财务结果分析】") print(f"1. 卖出时剩余贷款: ${res['loan_balance']:,.0f}") print(f"2. 卖房净值 (扣贷后): ${res['gross_proceeds']:,.0f} <-- Project IRR 终值") print(f"3. 需归还 CPF (本息): ${res['cpf_refund']:,.0f} (含应计利息)") print(f"4. 最终到手现金: ${res['net_cash']:,.0f} <-- Cash IRR 终值") print("-" * 40) print(f"【关键回报率指标】") print(f"Project IRR (总资产年化): {p_irr*100:.2f}%") print(f"Cash-on-Cash IRR (现金年化): {c_irr*100:.2f}%") print("-" * 40) # 简单的现金流检查 (前几年) # print("现金流校验 (前5个关键节点):") # print(f"T=0.5 (签约) Cash Flow: {e_cf[6]:,.0f}") # print(f"T=4.0 (装修) Cash Flow: {e_cf[48]:,.0f}") # print(f"T=4.1 (运营) Cash Flow: {e_cf[49]:,.0f}") ```
本文由作者按照 CC BY 4.0 进行授权