Wealth Freedom OS
Foundation · 36 章Phase V · Build the Capital Engine

第 26 章 · 复利与时间

时间、投入和回报哪一个更能改变结果?

关联资本
Financial CapitalTime Capital
要交出的成果
Compounding Lab:三组假设下的曲线与敏感性结论。
用到的口径
projectruleOf72

这一章的标题是一个问题,而这个问题有一个确切的答案:取决于你问的是第几年。

同一组假设、同样四个输入,在第 10 年和第 30 年,「哪一个最能改变结果」的排序是两套。更麻烦的是,排序还取决于你怎么定义「变化一点」,以及你手上现在有多少本金。下面会给出三个不同的「反超年份」——第 22 年、第 26 年、第 28 年——它们全部正确,只是基准不同。

所以这一章不打算给你一句「X 比 Y 重要」。它要给的是一张你自己能重算的敏感性表,以及一组知道自己什么时候失效的工具。

钱从哪来、怎么让它每个月真的到账,是第 25 章(第一桶资本)的事。这一章假定钱已经在往里走,只问往里走的那笔钱怎么被四个输入放大或者吃掉。

机制

长期积累只有四个输入:你手上已经有的、你每期放进去的、它被放了多少年、每年按什么比率变化。输出只有一个:某一年年末的余额。project 这个口径就是这四个输入到那一个输出的全部内容,没有第五个。

本金Principal

你自己放进去的钱,包括起始的那一笔和之后每一期投入的累加。它是余额里唯一不含假设的部分——对账单上数得出来,不需要任何人同意。

本章基准组的本金走势是这样的:第 1 年 168,000、第 10 年 600,000、第 30 年 1,560,000。这三个数不管回报是正是负都一样,因为它们只是加法。

它有一个容易被忽略的性质:早期余额几乎全部是本金。 基准组第 1 年末名义余额 175,976,其中本金 168,000;回报那一块只有 7,976,占 4.5%。这不是因为回报假设低,是因为回报按余额算,而第 1 年的余额里几乎只有刚放进去的那几笔。

收益率Rate of Return

一个年化比率。project 把它折成月:月回报 = (1 + 年化) ^ (1/12) − 1,然后每个月乘一次。

关于它只有一句话最重要:它是四个输入里唯一一个你不能核对的。 本金你数得出来,年数你查得出来,费率写在合同里,而收益率是一个关于未来的假设。本章正文里出现的 6%、5%、3%、−2%、−6%、−15% 全部是让算式走得通的假设值,不是任何一类资产的参考值,也不是预测。

它允许为负,而负的那一段会把前面的加法一起往下拉。基准组把回报假设换成 −2%、其余不动,第 100 年余额 1,759,115,而那一百年里累计投入是 4,920,000。

费用拖累Fee Drag

按年率从资产里扣的那一项。project 把它折成月:每月扣掉当时余额 × (年费率 ÷ 12)。它和收益率的区别是方向确定——跌的年份它照收。

它为什么比那个百分比看起来更贵,第 20 章已经整节算过一遍:0.5% 的年费率在三十年里累计只扣了 149,727,但名义终值比 0% 那一行少了 266,841,差额 117,114 是被扣走的钱本来会产生的回报。这一章不重算那张表,只用它的结论:费用也在复利,方向相反。

本章基准组的年费率固定在 0.5%,三十年累计 244,170,其中第 1 年 751、第 30 年 20,174——同一个费率,第 30 年扣掉的钱是第 1 年的 27 倍,因为它按余额收。

实际回报Real Return

扣掉通胀之后的回报,对应的是购买力而不是账户数字。project 对每一年同时给两个余额:名义余额,以及按通胀假设折回今天的实际余额。

两者的差距比大多数人预期的大。基准组第 30 年名义 4,154,435、实际 1,980,596,差 2,173,838——占名义值的 52.3%。折算因子就是 1.025 的 30 次方 = 2.0976。

常见的近似是「实际回报 ≈ 名义 − 通胀」。它在低通胀时够用,在高通胀时会明显偏错,下面「算一遍」第三步把这个偏差算出来,并给出它偏多少的规律。

四个输入,一个输出,一张会变的排序

把四个输入各自提高 10%,看期末余额各自多多少,这就是敏感性。它不是一个固定排序。

基准组(起始本金 120,000、月投 4,000、名义年化回报假设 6%、年化费用率 0.5%、通胀假设 2.5%):

各自 +10%10 年:多出来多少10 年排序30 年:多出来多少30 年排序
年限+95,355(10 → 11 年)1+876,373(30 → 33 年)1
月投(4,000 → 4,400)+63,5332+356,1243
回报假设(6% → 6.6%)+31,9273+513,9932
起始本金(120,000 → 132,000)+20,4424+59,3204

月投和回报假设在中间换了位置。它们在第 22 年互换:第 21 年月投还多(186,098 对 182,904),第 22 年回报假设反超(207,458 对 201,221)。

这个「第 22 年」不是一个常数。它随基准移动:

  • 把起始本金从 120,000 改成 0、其余四项不动,反超推到第 28 年(第 27 年 290,190 对 289,102,还是月投;第 28 年 324,122 对 311,008,回报赢)。
  • 第 20 章用的是另一种「变化一格」:储蓄率 +10 个百分点对回报假设 +3 个百分点,在那组定义下反超发生在第 26 年。

三个数字——22、26、28——都是对的。差别全在基准本金和「一格」怎么定义。所以「时间、投入和回报哪个更重要」这个问题,必须带着年限、基准和步长一起问,否则它没有答案。

年限那一列为什么总是第一,以及它为什么不能买

上表里年限一直排第一,但它不是一个干净的对照:年限 +10% 的同时你也多投了钱。拆开看:

  • 10 → 11 年:多出 95,355,其中多投的本金 48,000,剩下 47,355 来自多复利的那一年。
  • 30 → 33 年:多出 876,373,其中多投的本金 144,000,剩下 732,373 来自多复利的那三年。

第二项才是时间本身的贡献,而它在 30 年那一行是多投本金的 5.1 倍。

问题在于,这一列是四列里唯一不能用钱买的。 另外三个输入都可以在今天调整:多存一点、把起始那笔凑高一点、甚至换一个回报假设(虽然换的只是假设,不是回报)。少掉的年份没有任何输入能换回来——下面「算一遍」第四步会算出晚开始五年需要多高的回报才追平,答案是 8.36%,而那个数字你没法核对。

72 法则:它给量级,不给计划

ruleOf72(0.06) 返回 12,意思是在 6% 这个假设下,一笔钱大约 12 年翻一倍。精确解是 ln2 ÷ ln1.06 = 11.896 年,按 12 年算得到 2.0122 倍。这个精度对建立量级感够用了。

它在四个地方会骗你,而且这四个地方同时存在:

  1. 它假设回报恒定。 真实的年回报不是一条直线,而 72 法则里没有放波动的位置。
  2. 它忽略费用。 400,000 元在 6% 假设下,不收费时第 12 年是 804,879(翻倍年份 12),年费率 0.6% 时第 12 年只有 748,951,真正翻倍要到第 14 年。
  3. 它忽略通胀。 同一笔钱按 2.5% 通胀看购买力,第 12 年只有 556,887(1.39 倍),购买力翻倍要到第 26 年。
  4. 它忽略投入。 它算的是一笔不动的钱。你每个月还在往里放钱,那条曲线和 72 法则描述的根本不是同一条。

所以同一个问题「这笔钱什么时候翻倍」有三个都正确的答案:12 年(法则)、14 年(扣费后)、26 年(按购买力)。 区别不在算得准不准,在问的是哪一个。

还有一个更硬的边界:ruleOf72 在回报为零或为负时返回 null,不返回数字。 ruleOf72(0)、ruleOf72(-0.04)、ruleOf72(-0.15) 全部是 null。这不是没实现,是那时候「翻倍年数」这个问题本身不成立。任何在负回报下也给你一个翻倍年数的工具,都在替你编一个数。

这一章不给任何回报参考值,也不比较任何产品

正文和表格里出现的每一个回报数字都是为了让算式走得通而设的假设。它们不是历史回报、不是某类资产的参考值、更不是对未来的判断。单一市场的历史回报不能代表未来确定收益(PRD 第 2.2 节),这一点在整个 Phase V 不会变。

这一章也不讨论买什么、在哪儿买、费率哪家低。费率、可得性与税务处理按地区和年份变化,属于带适用地区与核对日期的 Content Pack,不写进正文;税务结论需要和当地专业人士核实,这里不给答案。资产怎么分配是第 27 章的事,通胀与税务口径是第 28 章,回撤怎么扛是第 29 章,把假设写成一份政策是第 30 章。

正文里出现过一次 −2%、一次 −6%、一次 −15%,是硬性要求:你必须看过向下的那条曲线,否则「复利」这个词会被默认成向上。

敏感性排序不是一条结论,是一个要重算的数

写完这一章你会很想记住「年限 > 回报 > 月投 > 本金」这个顺序。不要记。

那个顺序只在「基准本金 120,000、月投 4,000、6%、0.5% 费、30 年、各自 +10%」这一组条件下成立。换一个起始本金,反超年份从 22 变成 28;换一种「一格」的定义,它变成 26;把回报假设拖到负数,回报那一列的符号整个翻过来——+10% 的回报假设在 −2% 的情形下是 −2.2%,期末余额反而少 20,092。

正确的用法是:把你自己的四个数填进去,在你自己的年限上算一次。 口径的完整定义在口径索引,这一章「你的行动」要交的就是这张表。

现实案例

三个人,三种不同的错误用法:把少掉的年份当成可以用回报补的东西、把 72 法则当成时间表、把名义金额当成购买力。

晚开始五年,差额是少投本金的 4.35 倍夏,36 岁,在职设计师第 1–25 年

输入全部列出来: 起始本金 0,月投 4,000 元,投入额不增长,名义年化回报假设 6%,年化费用率 0.5%,通胀假设 2.5%。她 36 岁开始,算到 61 岁,25 年。

同一组假设,如果 31 岁就开始,是 30 年。两条线:

年数累计投入期末名义余额期末实际购买力
31 岁开始301,440,0003,561,237—
36 岁开始251,200,0002,517,3801,357,851

差额 1,043,857。而她少投进去的本金是 1,440,000 − 1,200,000 = 240,000。

差额是少投本金的 4.35 倍。 多出来的那 803,857 不是钱,是那五年里前面二十五年的余额本来会继续复利的部分。

她在第 2 年做的事是重设回报假设:把 6% 改成 8%,理由是「晚开始就得积极一点」。这个动作要成立,需要的数字可以精确算出来——25 年要追平 30 年 @6%,年化回报假设需要 8.36%(算到 3,561,237,和 30 年那条线一致)。顺手看一眼量级:ruleOf72(0.0836) = 8.61 年翻一倍,比 6% 的 12 年快了三年半。

问题不是 8.36% 高不高。问题是这个数字无法核对:它是一个关于未来二十五年的假设,而不是一项她能验收的输入。同一行里另一个追平方案是可以核对的——回报仍按 6%,月投从 4,000 提到 5,659 元(+41.5%)。这个数字她今天就能知道做不做得到。

如果晚的是十年(20 年):期末 1,717,598,追平需要 12.29%,或者月投提到 8,294 元。两个数都在变大,而只有后面那个能被核对。

她最后选的是第三条路:月投提到 5,000,同时把 6% 写成「待核对的假设」,并在同一页写下「如果这二十五年的平均回报只有 3%,期末名义是 1,658,598,比 6% 那条线少 858,782」。这不是一个让人高兴的数,但它是一个能提前知道的数。

把 72 法则当成时间表,第六年一次 −15% 把它推后四年鲍,42 岁,一笔不再追加的长期资金第 1–18 年

输入: 一笔 400,000 元,之后不再投入,名义年化回报假设 6%,年化费用率 0.6%,通胀假设 2.5%。

他用 ruleOf72(0.06) = 12 做了一个安排:第 12 年这笔钱会是 800,000,那一年家里有一笔支出要用它。

三个都正确的答案:

怎么问翻倍年份第 12 年的数
72 法则(6%,不扣费)12804,879
扣掉 0.6% 年费(名义)14748,951
按 2.5% 通胀看购买力26556,887(1.39 倍)

他要用的是名义的钱,所以对他有效的那一行是第二行:第 12 年差 51,049,真正到 800,000 要等到第 14 年(831,481)。年费率 0.6% 这一项是写在合同里的,它在他做安排的那天就能查到。

然后是第 6 年。 那一年的实际回报是 −15%,之后恢复按 6% 走。

  • 平稳情形下第 6 年末 547,339;实际第 6 年末 438,904。这一年差 108,435。
  • 第 12 年 600,574(原本 748,951)。
  • 翻倍年份从第 14 年推到第 18 年(821,794)。

一年 −15%,把翻倍推后了四年。而 ruleOf72(-0.15) 返回的是 null——72 法则对那一年完全没有话可说,它的公式里根本没有负数的位置。

他的错误不是选了 6%。是他把一个用来建立量级感的除法,当成了一张可以安排支出的时间表。72 法则能告诉他「6% 大概十二年翻一倍」这个量级;它不能告诉他第 12 年账上有多少钱,因为它不知道费率、不知道通胀、也不接受任何一年为负。

「20 年攒到 200 万」里的 20 年和 31 年差了 11 年葛,29 岁,刚开始按月投入第 1–31 年

输入: 起始本金 120,000,月投 4,000,名义年化回报假设 6%,年化费用率 0.5%,通胀假设 2.5%。目标写的是「200 万」。

yearsToTarget 在这组输入上返回 20。他把这一行抄进了计划:20 年。

第 20 年末的实际情况:

  • 名义余额 2,065,823(目标达成)
  • 累计投入 1,080,000
  • 累计费用 92,779
  • 实际购买力 1,260,712

他写「200 万」时想的是今天的 200 万能买到的东西。按同一组假设,实际购买力到 200 万要等到第 31 年(那一年名义 4,431,144、实际 2,060,991)。

另一个算法给出同一件事:要在第 20 年拿到今天的 200 万,名义金额需要 2,000,000 × 1.025²⁰ = 3,277,233。而 yearsToTarget 返回 20 的那个目标是 2,000,000 的名义值。

20 年和 31 年,差 11 年,全部来自口径。 两个数都不是算错的,它们回答的是两个不同的问题:「账户上会显示 200 万」和「那时候能买到今天 200 万的东西」。

他改完之后的写法是两行:目标 1 是名义 2,065,823 在第 20 年(可以直接和对账单比),目标 2 是实际 2,000,000 在第 31 年(用来和今天的生活成本比)。同一页上还加了第三行:如果这些年的平均回报假设只有 0%、费率仍 0.5%,yearsToTarget 给出的名义 200 万要到第 45 年;费率为 0 时是第 40 年——单是那 0.5% 的费率,就值 5 年。

算一遍

四样东西:先用交互模拟器做三个实验(其中一个把回报拖成负数),再手算四个输入的敏感性表(两个年限各算一次,看排序换位),然后把名义与实际放在一起算一次(并算出减法近似差多少),最后用 yearsToTarget 看一眼「达不到」长什么样。

第一步:三个实验,其中一个必须向下

算一遍三组假设下的曲线:晚开始、负回报、按比例的敏感性口径:project、ruleOf72

这个模拟器的口径和 project 一致:月回报取年化的 1/12 次方,费用按年率 ÷ 12 从资产里扣,名义与实际分开给。先按默认值跑一遍——月税后 28,000、储蓄率 20%、收入年增长 3%、名义年化回报假设 5%、费用 0.5%、20 年——期末 2,772,136、本金贡献 1,805,689、回报贡献 966,447、累计费用 110,600、期末实际购买力 1,865,568,交叉点那一栏显示「在 20 年里没有发生」。这组读数和第 20 章第一步一致,这里不重复它的分析,只用它当三个实验的起点。

实验一:少的五年,回报补得回来吗。 只把年限从 20 拖到 15,其余不动:期末从 2,772,136 掉到 1,728,219(本金贡献 1,249,847)。现在把回报假设往上拖,看哪一格能追回 2,772,136:

  • 11.0% → 2,744,731(还差 27,405)
  • 11.5% → 2,856,352(第一个超过的刻度)

精确值是 11.12%——原来是 5%,要变成两倍多。顺手看一眼量级:ruleOf72(0.05) 是 14.4 年翻一倍,ruleOf72(0.1112) 是 6.47 年。这个滑块最大只能拖到 15%,而那条线上的 11.12% 不是一个你能验收的输入,它只是一个假设。 对照一下另一个追平方式:把储蓄率从 20% 往上拖,每拖一格都是一个你今天就能核对的事实。

实验二:把回报假设拖成负数(这一步是硬性要求)。 回报假设拖到 −6%,年限拖到 30:

  • 期末余额 1,569,562
  • 本金贡献 3,197,068
  • 回报贡献 −1,627,506(整列为负,曲线向下)
  • 累计费用 121,392——费用按资产收,跌的年份照收
  • 期末实际购买力 866,509
  • 交叉点「在 30 年里没有发生」

投了三十年,账面是累计投入的 49%。 现在回到 72 法则:ruleOf72(-0.06) 返回 null,不是一个数。在这条向下的曲线上,「多少年翻一倍」这个问题不成立——不是算不出来,是问题本身没有对象。任何在这里给你一个年数的工具都在编。

实验三:按比例动一格,排序会不一样。 第 20 章比过「储蓄率 +10 个百分点」对「回报假设 +3 个百分点」,结论是回报在第 26 年反超。现在换成各自 +10% 的相对变化:储蓄率 20% → 22%(拖两格),回报假设 5.0% → 5.5%(拖一格)。各自单独动,看期末多多少:

年限基准期末储蓄率 +10% 相对回报假设 +10% 相对谁赢
10958,105+95,811(+10.00%)+23,881(+2.49%)储蓄率
202,772,136+277,214(+10.00%)+143,122(+5.16%)储蓄率
306,025,694+602,569(+10.00%)+484,654(+8.04%)储蓄率

这一次 30 年里一次都没反超。 原因在括号里那两列百分比:储蓄率那一列恒定是 10.00%——余额对投入是线性的,弹性永远等于 1,和年限无关;回报那一列从 2.49% 爬到 8.04%,爬了三十年还没到 10%。

和第 20 章的第 26 年放在一起看:同样两个输入、同样的模拟器,一种定义下回报在第 26 年反超,另一种定义下三十年都没反超。 两个结论都对。差别是「一格」有多大——第 20 章动的是 +10 个百分点的储蓄率,这里动的是 +10% 的相对值(两格)。

所以这个模拟器能回答的不是「哪个输入更重要」,是「在我这组数上、在我这个年限上、按我这个步长,哪个输入更重要」。 前面那个问题没有答案,后面那个有,而且你每改一次假设都得重算一遍。

算一算:早期的钱是你投的,还是涨出来的口径 3.0.0 · 模型 0.1.0
期末余额(名义)
2,772,136 元
其中本金贡献
1,805,689 元
你自己投进去的钱
其中回报贡献
966,447 元
由回报假设产生的部分
累计费用
110,600 元
费用一直在反方向复利
第几年余额(名义)本金贡献回报贡献回报占余额
168,818 元67,200 元1,618 元2.4%
3222,183 元207,708 元14,474 元6.5%
5398,540 元356,774 元41,766 元10.5%
10958,105 元770,373 元187,733 元19.6%
151,728,219 元1,249,847 元478,372 元27.7%
202,772,136 元1,805,689 元966,447 元34.9%
回报累计超过投入的那一年
在 20 年里没有发生
在这一年之前,你的余额主要来自自己的收入
期末实际购买力
1,865,568 元
按 2% 通胀折回今天的钱,不要和名义值混用

储蓄率敏感性

  • 储蓄率 15.0% → 期末 2,079,102 元
  • 储蓄率 20.0% → 期末 2,772,136 元
  • 储蓄率 25.0% → 期末 3,465,171 元

前几年余额几乎等于你投进去的钱。能更快改变结果的是收入与储蓄率,不是再调高回报假设。

调用的口径: simulateFirstCapital、project

本次计算的假设:

  • 回报按年给出、按月折算;费用按年从资产里扣,同样折成月。
  • 每月投入 = 当年税后月收入 × 储蓄率;投入额按收入增长率逐年提高。
  • 通胀按 2% 折算实际购买力,名义值与实际值分开显示,不能混用。
  • 回报率是一个固定年率,不含真实市场的波动与顺序;允许为负。
  • 不含税务、交易成本与任何具体产品。

这是教育性计算,不是投资建议,也不是对未来的预测。它只回答「在上面这些假设下,数字会是多少」。

读这张表的时候盯两列:本金贡献是事实,回报占余额是假设的产物。两列的比例决定了这一年该把力气花在哪一边,而且它每年都在变。

第二步:四个输入各 +10%,两个年限各算一次

基准组:起始本金 120,000、月投 4,000(不增长)、名义年化回报假设 6%、年化费用率 0.5%、通胀假设 2.5%。

先看基准自己:

年名义余额实际购买力本金贡献回报贡献回报占余额当年费用
1175,976171,684168,0007,9764.5%751
5432,230382,028360,00072,23016.7%2,002
10839,745656,008600,000239,74528.5%3,991
202,065,8231,260,7121,080,000985,82347.7%9,977
304,154,4351,980,5961,560,0002,594,43562.4%20,174

三十年累计费用 244,170。注意最后一列:同一个 0.5% 的费率,第 1 年收 751、第 30 年收 20,174,是 27 倍——它按余额收,所以它和余额一起长。

现在四个输入各自单独 +10%,同一张表算两次:

各自 +10%10 年:期末多出来相对排序
基准839,745———
年限 10 → 11935,100+95,355+11.36%1
月投 4,000 → 4,400903,278+63,533+7.57%2
回报 6% → 6.6%871,672+31,927+3.80%3
本金 120,000 → 132,000860,187+20,442+2.43%4
各自 +10%30 年:期末多出来相对排序
基准4,154,435———
年限 30 → 335,030,808+876,373+21.09%1
回报 6% → 6.6%4,668,427+513,993+12.37%2
月投 4,000 → 4,4004,510,558+356,124+8.57%3
本金 120,000 → 132,0004,213,754+59,320+1.43%4

四件事从这两张表上直接读出来。

第一,排序换了位。 月投和回报假设在 10 年那张表上是 2 和 3,在 30 年那张表上是 3 和 2。逐年算一遍,互换发生在第 22 年:第 21 年月投还多(186,098 对 182,904),第 22 年回报假设反超(207,458 对 201,221)。

第二,这个反超年份本身也不是常数。 把起始本金从 120,000 改成 0、其余四项不动,反超推到第 28 年(第 27 年 290,190 对 289,102,还是月投;第 28 年 324,122 对 311,008)。再对照第 20 章用另一种步长得到的第 26 年。22、26、28 三个数都是对的——所以「敏感性排序」必须和基准、步长、年限一起说,单独说出来没有意义。

第三,年限那一列排第一,但它不是一个干净的对照。 年限 +10% 的同时也多投了钱。拆开:10 → 11 年多出的 95,355 里,多投本金 48,000,剩下 47,355 来自那一年的复利;30 → 33 年多出的 876,373 里,多投本金 144,000,剩下 732,373 来自那三年的复利——是多投本金的 5.1 倍。第二项才是时间本身的贡献。

第四,起始本金那一列一直排最后,而且越往后越小。 相对贡献从 10 年的 2.43% 掉到 30 年的 1.43%。这不是说起始那笔钱不重要,是说在一个持续投入的账户里,它被后面的投入和回报一起稀释了。所以「先攒够一大笔再开始」这个顺序在这张表上找不到支持。

第三步:名义与实际,以及减法在哪里失效

同一组基准假设跑 30 年,同一行里有两个数:

第 30 年
名义余额4,154,435
实际购买力(按 2.5% 折回今天)1,980,596
差额2,173,838
差额占名义值52.3%

折算因子就是 1.025³⁰ = 2.0976。三十年 2.5% 的通胀假设,把购买力折掉了一半多。这不是费用——同一组假设下的累计费用是 244,170,只有差额的 11%。

然后看「实际回报 ≈ 名义 − 通胀」这个近似。

  • 减法:6% − 2.5% = 3.5%
  • 精确:(1 + 0.06) ÷ (1 + 0.025) − 1 = 3.4146%
  • 差 0.0854 个百分点

拿这两个比率各跑 30 年(通胀设 0,所以跑出来的就是实际口径):按 3.5% 得 2,604,128,按 3.4146% 得 2,564,449,差 39,679——占 1.5%。在 2.5% 的通胀下,减法够用。

它在高通胀时不够用。 同样的 6% 名义回报,换几个通胀假设:

通胀假设减法精确(除法)差(百分点)相对误差
2.0%4.00%3.92%+0.082.0%
2.5%3.50%3.41%+0.092.5%
5.0%1.00%0.95%+0.055.0%
10.0%−4.00%−3.64%−0.3610.0%
20.0%−14.00%−11.67%−2.3320.0%

最后一列有个规律:减法的相对误差正好等于通胀率本身。 通胀 2% 时减法偏 2%,通胀 20% 时偏 20%。所以判断标准很简单:通胀假设在 3% 以下,减法够用;上到两位数,必须用除法。

还有一个更容易错的地方:这两条路算的不是同一个东西。 基准组的实际终值是 1,980,596,而「按 3.4146% 实际回报跑 30 年」给的是 2,564,449,差 583,853。两边都没算错——区别在月投那 4,000 元:

  • project 里它是一个固定的名义金额,三十年一直是 4,000,它自己在贬值。
  • 「按实际回报跑」隐含假设它是一个固定的实际金额,也就是每年跟着通胀涨。

验证一下:把投入增长率设成 2.5%、回报仍 6%、通胀仍 2.5%,实际终值 2,538,961,和 2,564,449 只差 25,488(1%)。

所以用实际回报做长期计算时,必须同时假定投入也跟着通胀走。 只换回报不换投入,等于偷偷给自己加了三十年的加薪。

第四步:yearsToTarget 的数字,以及它返回 null 的时候

同一组基准假设,换几个目标金额:

目标(名义)yearsToTarget
1,000,00012 年
2,000,00020 年
3,000,00026 年
5,000,00033 年

注意这几个间隔:第一个一百万要 12 年,第二个一百万只要 8 年(12 → 20),第三个要 6 年(20 → 26)。间隔在缩短——这就是回报占比从 28.5% 爬到 62.4% 在时间轴上的样子。

把回报假设换成 −2%,其余四项不动:

  • yearsToTarget(…, 2000000) 返回 null
  • 第 20 年余额 825,748(累计投入 1,080,000)
  • 第 40 年余额 1,252,064(累计投入 2,040,000)
  • 第 100 年余额 1,759,115(累计投入 4,920,000)

null 的意思不是「算不出来」,是在给定的年限上限内这个目标达不到。原因可以直接看出来:每年投进去 48,000,而余额每年被 −2% 的回报和 0.5% 的费用一起拿走一部分;拿走的量随余额变大,所以余额会趋向一个上限,而那个上限低于 2,000,000。把目标改成 1,500,000,它返回 60 年——同一条曲线,目标低一点就有答案了。

yearsToTarget 的默认上限是 100 年。所以 null 永远要读成「在这个上限内、按这组假设达不到」,而不是「永远达不到」,也不是「这组假设是错的」。

最后一个对照,关于费率: 把回报假设换成 0%、费率保持 0.5%,名义 2,000,000 要 45 年;费率改成 0,同样的目标 40 年。单是那 0.5%,在一条不涨的曲线上值 5 年。

四个输入里有三个能核对,一个不能

这一章所有的取舍都落在这一句上。

  • 本金:对账单上数得出来。事实。
  • 年限:日历上查得出来。事实,而且是唯一不能用钱买的那一个。
  • 费用拖累:写在合同里,查得到。事实,方向确定(它一直在扣)。
  • 收益率:关于未来的假设,今天无法核对,而且可以为负。

所以「提高回报假设」和「提高月投」从来不是两个同类的动作:前者改的是一个假设,后者改的是一个事实。夏那个案例里的 8.36% 和 5,659 元月投在算式上等价,在可核对性上完全不等价。

这也是为什么这一章要交的是三组假设而不是一组:三组假设之间的差距,就是你这份计划对假设的敏感程度。

你的行动

你的行动写出你的 Compounding Lab:三组假设下的曲线与敏感性结论

一页纸,两部分:三组假设各一块,然后一块敏感性结论。一个文本文件就够。

第一部分格式(照抄这六行,三组各写一遍,一行都不能空):

〔第 N 组:名字〕 四个输入:起始本金 / 月投(增不增长) / 年限 / 名义年化回报假设 + 年化费用率 + 通胀假设 这组假设的来源:(每一个数从哪儿来,哪些是事实、哪些是假设,一个一个说) 期末名义 / 期末实际:(两个数都写,不能只写一个) 回报占期末余额:(一个百分比) 这组假设错了会怎样:(指一组具体的数字,不是「可能少一些」)

三条填表规则:

  1. 三组必须覆盖一个负回报的情形。 不是「低一点」,是负的。第三组就写负数,然后把期末余额和累计投入放在一起看——这一步看过之后,你对「复利」这个词的默认方向就修好了。
  2. 每一个数都要标事实还是假设。 起始本金、月投、费率、年限是事实(能核对);回报假设和通胀假设是假设(不能核对)。混在一行里不行。
  3. 期末名义和期末实际必须都写。 只写一个的那一页,三个月后一定会被当成另一个用。

第二部分格式(照抄这四行,只写一遍):

四个输入各 +10%,在我的年限上:(四个数 + 排序) 换一个年限再算一次:(同样四个数 + 排序,并指出哪两项换了位) 月投和回报假设的反超年份:(第几年,或者「在我的年限里没发生」) 我能核对的那三项 vs 不能核对的那一项:(写明如果去掉回报假设那一列,剩下三项还能撑出多少)

填好的示例(夏,第 2 年重做的那一版):

〔第 1 组:平淡〕 四个输入:起始本金 0;月投 5,000(不增长);25 年;名义年化回报假设 3%、年化费用率 0.5%、通胀假设 2.5%。 这组假设的来源:起始本金 0 是事实(这个账户是新开的)。月投 5,000 是事实(工资自动划转,已经跑了 7 个月,对账单上数得出来)。25 年是事实(36 到 61 岁)。0.5% 费率来自我签的那份合同,是事实。3% 的回报假设是假设——我故意设得低,用来回答「如果这些年很平淡会怎样」。2.5% 通胀也是假设。 期末名义 / 期末实际:2,073,248 / 1,118,290。累计投入 1,500,000,累计费用 116,882。 回报占期末余额:27.6%——将近四分之三是我自己放进去的钱。 这组假设错了会怎样:如果实际平均只有 0%、费率仍 0.5%,25 年期末名义 1,409,725(比这一组少 663,523),而 yearsToTarget 要到第 37 年才够名义 200 万。那意味着这条线上我得改月投或者改目标,不是改假设。

〔第 2 组:当初写计划时顺手用的那个数〕 四个输入:同上,只把回报假设换成 6%。 这组假设的来源:6% 没有来源,是我一开始顺手写的——这是假设,而且是这一页上最该被标出来的那个数。 期末名义 / 期末实际:3,146,725 / 1,697,314(差 1,449,411,占名义的 46.1%)。累计费用 154,978。 回报占期末余额:52.3%——一半以上不是我放进去的钱,所以这一组对回报假设最敏感。 这组假设错了会怎样:和第 1 组比,6% 对 3% 的差距是 1,073,477。这页纸上「还不错」和「平淡」之间差 107 万,而我今天没有任何办法知道哪一个会发生。所以我不把这一组当成计划,只当成上界。

〔第 3 组:负回报(必须有一组)〕 四个输入:同上,回报假设 −2%。 这组假设的来源:纯假设,用来看向下的曲线长什么样。我不认为它会是二十五年的平均值,但我需要看过它。 期末名义 / 期末实际:1,111,662 / 599,620。累计投入 1,500,000——投了二十五年,账面比投进去的少 388,338。 回报占期末余额:−34.9%(负的)。累计费用 76,991,跌的年份照收。 这组假设错了会怎样:这一组最有意思的地方是,+10% 的回报假设(−2% → −2.2%)会让期末少 25,114。在这条曲线上,「提高回报假设」连方向都不对了。另外 ruleOf72(-0.02) 返回 null——翻倍年数在这里不是一个成立的问题。

〔敏感性结论〕 四个输入各 +10%,在我的年限(25 年、回报 6%)上:年限 25 → 28 +740,879;月投 5,000 → 5,500 +314,672;回报 6% → 6.6% +285,210;起始本金 0 → 0(我没有起始本金,这一列对我是 0)。排序:年限 > 月投 > 回报。 换一组假设再算一次(3% 那一组):年限 +345,498;月投 +207,325;回报 +85,450。排序不变,但回报那一项从 285,210 掉到 85,450——回报假设越低,调回报假设越没用,这一点我之前没想到。 月投和回报假设的反超年份:在我这组数上(起始本金 0、6%、0.5% 费),反超在第 28 年(第 27 年月投还多,第 28 年回报反超),而我只有 25 年——所以在我的整个年限里,月投一直比回报假设更有力,而且它是我能核对的那一个。 我能核对的那三项 vs 不能核对的那一项:把回报假设整列拿掉(当成 0%、费率仍 0.5%),25 年期末名义 1,409,725,累计投入 1,500,000、累计费用 90,275。也就是说,不靠任何回报假设,我自己放进去的钱扣掉费用之后还有 140 万。 这个数是这一页上唯一一个不需要任何人同意的数字,而它已经是第 2 组那 314 万的 45%。

重做这张表的触发条件,写在同一页底部:

  • 四个输入里任何一个事实项变了(月投改了、费率改了、年限因为计划变化而缩短);
  • 回报假设或通胀假设被改动——每改一次就重算三组,不许只改一组;
  • 实际年回报连续两年落在你那三组假设之外;
  • 年限每过去 5 年:敏感性排序会随年限变,这一章的全部内容就是这件事;
  • 每年至少一次,无论以上有没有发生。

这张表不告诉你该不该投、投什么、投多少

写完之后你会很想问「那我现在该怎么配」。这张表不回答这个问题。

它只回答一件事:在你自己那四个输入上,哪一个输入的变化最能改变结果,以及这个答案在你的年限上是不是已经换过位。 该配什么、怎么分散、重叠暴露怎么看,是第 27 章(资产配置)的事,而且必须结合你的投资期限、流动性需求、所在地区、税务处理、风险承受能力和现有资产结构来做——没有一个配置对所有人都对。

另外,你现在该不该把力气放在这件事上,取决于前面几章:Wealth Ladder 的哪个阶段、第 1 章那几个单点修了没有、现金流扛不扛得住一次中断。一张敏感性表排在现金流危机前面是没有用的。

检查标准

检查标准0 / 6
  • 我的 Compounding Lab 三组假设都写了,六行填满(四个输入 / 来源 / 名义与实际 / 回报占比 / 这组错了会怎样),并且其中一组的回报假设是负数。
  • 我知道敏感性排序会随年限变化——我在自己的两个年限上各算了一次四个输入 +10%,能指出哪两项换了位,也能说出我自己那个反超年份是第几年(或者在我的年限里根本没发生)。
  • 我不用 72 法则做规划。我能说出它为什么只给量级:它假设回报恒定、忽略费用、忽略通胀、忽略持续投入;我也知道它在回报为零或为负时返回 null,而不是一个数字。
  • 我能分开说出期末名义和期末实际两个数,知道它们回答不同的问题;我没有把名义金额和今天的生活成本做比较,也没有在用实际回报计算时忘记让投入跟着通胀走。
  • 我亲手把回报假设拖成过负数,看过回报贡献那一列整列为负、账面低于累计投入的样子,并且知道费用在那种年份照收。
  • 我标明了四个输入里哪三项能核对、哪一项不能,并且算过「把回报假设当成 0% 之后,光靠我自己放进去的钱能撑出多少」。

容易搞错的地方

把敏感性排序当成一条固定结论。 以为「时间最重要、回报第二、投入第三」这种顺序是常数。实际上月投和回报假设在基准组的第 22 年互换,起始本金改成 0 之后互换推到第 28 年,而第 20 章用另一种步长得到的是第 26 年。后果是在一个 10 年的计划上按 30 年的排序做决定——10 年那张表上月投多出 63,533,回报假设只多出 31,927,差了一倍。

用更高的回报假设去补少掉的年份。 以为晚开始几年可以靠「积极一点」追回来。实际上可以,但需要的那个数字无法核对:夏晚开始五年,25 年要追平 30 年 @6% 需要 8.36%。后果是她把一个不可验收的假设写成了计划的核心,而同一行里那个可以核对的方案——月投从 4,000 提到 5,659——被跳过了。少掉的那五年不是钱:差额 1,043,857 是她少投本金 240,000 的 4.35 倍。

把 72 法则当成一张时间表。 以为 ruleOf72(0.06) = 12 意味着第 12 年账上会有两倍的钱。实际上它假设回报恒定、不扣费、不折通胀、不算投入。后果是鲍那笔 400,000:72 法则说第 12 年 800,000,扣掉 0.6% 年费之后第 12 年只有 748,951(真正翻倍要到第 14 年),按购买力看第 12 年只有 556,887(购买力翻倍要到第 26 年)。而第 6 年一次 −15% 把翻倍从第 14 年推到第 18 年,ruleOf72(-0.15) 对那一年返回 null。

把名义金额当成购买力。 以为「20 年攒到 200 万」里的 200 万就是今天的 200 万。实际上同一行有两个数:葛第 20 年名义 2,065,823、实际购买力 1,260,712。后果是他的目标实际上要到第 31 年才达成,差 11 年;要在第 20 年拿到今天的 200 万,名义需要 3,277,233。

用「实际回报 = 名义 − 通胀」却忘了投入也在贬值。 以为把 6% 换成 3.41% 跑一遍就得到实际口径。实际上那样算隐含假定你的月投每年跟着通胀涨:基准组的实际终值是 1,980,596,而按 3.4146% 跑 30 年给的是 2,564,449,差 583,853。把投入增长率设成 2.5% 之后,实际终值回到 2,538,961,和 2,564,449 只差 1%。后果是给自己偷偷加了三十年的加薪。

以为减法在所有通胀假设下都够用。 以为「名义 − 通胀」只是个小近似。实际上它的相对误差正好等于通胀率本身:2% 通胀时偏 2%,20% 通胀时偏 20%——6% 名义回报在 20% 通胀下,减法给 −14.00%,除法给 −11.67%,差 2.33 个百分点。后果是在高通胀的情景里把实际回报算得比真实情况更糟,然后据此改掉一个本来没问题的计划。

把 yearsToTarget 返回的 null 读成「算错了」。 以为返回 null 是输入有问题。实际上它的意思是在给定年限上限内这个目标达不到:回报假设 −2%、月投 4,000、费率 0.5%,目标 2,000,000 返回 null,因为余额趋向一个低于 200 万的上限(第 100 年 1,759,115,而累计投入 4,920,000)。后果是去调输入直到它返回一个数字——那不是算出了答案,那是把假设改到了自己想看的样子。目标改成 1,500,000,同一条曲线返回 60 年。

只盯回报假设,不看那个确定会扣的费率。 以为回报假设才是大头。实际上回报是假设,费率是合同里写着的事实:回报假设 0%、费率 0.5% 时名义 200 万要 45 年,费率为 0 时 40 年——那 0.5% 值 5 年。后果是花几个周末调一个无法核对的数,而一个查得到、改得动的数一直没动过。费用怎么在三十年里吃掉比它本身更多的钱,第 20 章第三步已经算完了。

本章自测

不要回头翻,先自己答一遍。

  1. 长期积累的四个输入是哪四个?其中哪三个能核对、哪一个不能,为什么这个区分比排序更重要?
  2. 基准组第 1 年回报占余额 4.5%、第 30 年 62.4%。这个占比为什么前期一定低?它和回报假设高低有关系吗?
  3. 四个输入各 +10%,10 年那张表和 30 年那张表的排序差在哪里?互换发生在第几年?
  4. 为什么同一个「反超年份」有 22、26、28 三个都正确的答案?三者分别改变了什么?
  5. 「年限 +10%」那一列为什么不是一个干净的对照?30 → 33 年多出的 876,373 里,有多少来自多投的本金、多少来自多复利的时间?
  6. ruleOf72(0.06) 返回什么?同一笔 400,000 元在 6% 假设下「什么时候翻倍」有三个答案,分别是多少年、各自对应什么口径?
  7. ruleOf72 在回报为零或为负时返回什么?为什么不返回一个数字?
  8. 夏晚开始五年,25 年要追平 30 年 @6% 需要多少回报假设?同一件事换成调月投是多少?这两个方案在算式上和在可核对性上分别是什么关系?
  9. 基准组第 30 年名义 4,154,435、实际 1,980,596,差额占名义多少?这个差额是费用造成的吗?
  10. 「实际回报 ≈ 名义 − 通胀」在什么时候失效?它的相对误差有什么规律?用实际回报跑长期计算时,必须同时改哪一个输入?
  11. yearsToTarget 返回 null 是什么意思?什么情况下会出现,正确的读法是什么?

第 3、4 题答不上来,回到「算一遍」第二步把那两张表各看一遍。第 6、7 题答不上来,回到「机制」里 72 法则那一节。第 10 题答不上来,回到第三步最后那三段。十一题全答得上来但 Compounding Lab 还是空的——这一章唯一的成果就是那张表,它才是全部。


这一章对应的 Knowledge Object。注意「例子」那一栏里的 22、26、28 三个反超年份是同时成立的——它们的差别全在基准与步长:

WF-TIME-026第 26 章 复利与时间
核心问题
时间、投入和回报哪一个更能改变结果?
学习目标
能在自己的两个年限上各算一次四个输入的敏感性,并指出其中哪三项能核对、哪一项不能。
基础解释
长期积累只有四个输入:手上已有的本金、每期放进去的钱、它被放了多少年、每年按什么比率变化。前期余额几乎全是本金,回报要很多年才占大头,而费用一直在反方向复利。
进阶解释
敏感性排序不是一条结论,它随基准、步长与年限移动,必须带着这三样一起说。72 法则只给量级:它假设回报恒定、忽略费用、忽略通胀、忽略持续投入,并且在回报为零或为负时返回 null,而不是一个数字。用实际回报做长期计算时必须同时让投入跟着通胀走,只换回报不换投入等于偷偷给自己加了三十年的加薪。
例子
基准组(起始本金 120,000、月投 4,000、名义回报假设 6%、费率 0.5%)里,月投与回报假设在第 22 年互换;把起始本金改成 0,反超推到第 28 年;第 20 章用另一种「一格」的定义得到的是第 26 年——22、26、28 三个数都对。另一处可以自己验的规律:「名义 − 通胀」这个减法的相对误差正好等于通胀率本身,通胀 2% 时偏 2%,通胀 20% 时偏 20%。
计算或实验
project
现实行动
写出 Compounding Lab:三组假设各六行(其中一组的回报假设必须是负数),再加一块敏感性结论。
检查标准
  • 三组假设都写了期末名义与期末实际两个数,并且其中一组的回报假设是负数、看过回报贡献整列为负的样子
  • 能说出自己那个月投与回报假设的反超年份是第几年,或者它在自己的年限里根本没发生
  • 能说出 72 法则为什么只给量级,以及它在回报为零或为负时返回 null 而不是一个数字
关联概念
WF-FIRSTCAP-025、WF-CURRENCY-028、WF-IPS-030
来源
prd-v1.md 第 07 节 Phase V 第 26 章、第 15 节 Simulation B、第 2.2 节(不以单一市场历史回报代表未来确定收益);prd-v1.md 第 07 节 Phase V 阶段约束:不得规定所有人都该买某个指数,必须按投资期限/流动性需求/地区/税务/风险承受能力/现有资产结构分析
最近核对
2026-10-17

带走的结论

前十年靠投入,后面才轮到资本规模;费用一直在反方向复利。

这一章我走到哪了查看全部进度
成果已经做出来了Compounding Lab:三组假设下的曲线与敏感性结论。

自评(三项是分开的,不要一起勾)

进度只存在这台设备的浏览器里,不会上传。清理浏览器数据、换设备或使用隐私窗口都会丢失,请用下面的导出保留一份。

On this page