以下情境为教学假设,人物与数字不代表经核实的真实案例。
卷二前 12 章有 36 节,同一个词在不同章节里可能承担不同角色。「责任上限」在第 2 章是赔偿封顶,在第 6 章是保险保额的对照物;「抵扣」在第 2 章是收入折减,在第 12 章是停机损失的一部分。本附录把这些词收拢成五张分组表,每条回答三个问题:是什么、怎么算、在哪一章用。
表的顺序按「条款 → 现金 → 风险 → 渠道与授权 → 数据」排列,不是字母序。每条术语的「主要章节」只写编号,方便回到正文核对上下文;部分涉及具体算法的分组开头给出链接。
附录只处理商业口径:金额怎么算、风险怎么计量、条款如何改变现金流。它不解释法律适用,不引用法条编号,也不构成法律意见;DPA 与 SCC 只按商业义务和工时说明。
一、合同条款类
合同条款的财务后果通常落在三个位置:最坏赔偿、收入确定性、现金时点。同一句条款在这三个位置上的金额可能完全不同,所以读条款时要先确认它改变的是哪一个。责任上限的算法见 2.1 责任上限:最坏损失怎么算 。
| 术语 | 定义 | 计算式或判断口径 | 主要章节 |
|---|---|---|---|
| 责任上限 | 合同约定的最高赔偿金额,不是保险保额,也不自动覆盖赔偿例外 | 最坏损失 = 单份上限 × 合同数(或累计上限)+ 不受上限约束项;净敞口 = 上限 − min(上限,保险赔付) | 2.1、11.2 |
| 赔偿 | 一方因违约、侵权或第三方索赔向另一方支付的补偿,可能被列为不受上限约束 | 先看是否在责任上限的例外清单;再看保险是否覆盖;抗辩费用单独加回 | 1.1、2.1、5.1、11.2 |
| 续约窗口 | 合同到期前,一方必须发出不续约通知的最晚天数 | 窗口锁定收入 = 年化合同收入 ÷ 365 × 通知天数;错过窗口的期望收入 = 年化收入 ÷ 12 × 期望付费月数 | 2.2 |
| 退出通知 | 主动终止合同需要提前通知的天数,通知期内的收入和服务义务仍然存在 | 退出成本 = 通知期收入缺口 + 库存回购 + 未结佣金 + 客户尾佣 + 竞业期收入空档 | 2.2、9.3、10.2 |
| SLA | 对可用性、响应时间等服务水平的最低承诺,通常由统计周期和可用性百分比表示 | 允许停机小时 = 统计周期小时 ×(1 − 可用性);年度基数 8,760 小时,月度基数 730 小时 | 2.3、12.2 |
| 抵扣 | 未达到 SLA 时,按费用基数的一定比例减免应付费用 | 抵扣 = 费用基数 × 抵扣比例;抵扣是收入折减,不是成本;年度最大抵扣 = 年费 × 比例 | 2.3、12.2 |
| 验收 | 客户确认交付物满足约定条件的动作,验收标准决定收入确认和回款起点 | 可判定 = 有输入、有阈值、有测试方法、有期限;真实现金周期 = 验收等待 + 开票后 DSO | 1.2、1.3 |
责任上限和赔偿要分开读。上限封的是「你欠客户多少」,赔偿条款里的例外清单封的是「哪些索赔不受上限约束」;只读上限数字,会把知识产权侵权、数据泄露和抗辩费用漏在预算外。第 2.1 节用 $240,240 与 $720,720 两档演示了 1 年期与 3 年期合同的差别。
续约窗口和退出通知也不是同一个数。续约窗口保护的是「客户不续约前你能提前多久知道」,退出通知约束的是「你想走时还要付多久的服务成本」;前者算收入确定性,后者算退出成本。第 2.2 节和第 9.3 节分别处理这两个方向。
验收是把「做完」变成「可判定」的条款。它不在账龄表里,却会把真实现金周期拉长:验收等待发生在开票之前,DSO 只统计开票之后。第 1.2 节用 30 天和 60 天的延迟演示了这段被账龄表藏起来的时间。
二、应收与现金类
应收类术语的共同陷阱是「余额只有一个数,时间结构藏在后面」。同样的 12,000 美元应收,全部在 30 天内和一半超过 90 天,现金占用一样,风险完全不一样。账龄分档与计提的算法见 3.2 应收账龄表:从余额到风险分档 。
| 术语 | 定义 | 计算式或判断口径 | 主要章节 |
|---|---|---|---|
| 账期 | 发票开出后允许客户付款的天数,如 Net 15、Net 30、月结 30 天 | 平均现金占用 = 年收入 × 账期天数 ÷ 365;年资金成本 = 占用 × 资金成本率 | 1.3、3.1 |
| DSO | 应收周转天数,衡量从确认收入到回款的平均天数 | DSO = 应收余额 ÷ 年收入 × 365;合同账期是条款,DSO 是运营结果 | 1.3、3.1 |
| 账龄分档 | 把应收按未付天数分成 0–30、31–60、61–90、90 天以上四档 | 坏账准备 = Σ(各档余额 × 各档准备率);各档余额之和必须等于应收总额 | 3.2、4.1 |
| 坏账准备 | 对预计无法收回的应收计提的资产减值准备,是应收的抵减科目 | 应提准备 = Σ(各档余额 × 损失率);本期计提 = 期末应提 − 期初准备余额 | 3.2、4.1 |
| 核销 | 确认某笔应收无法收回后,把应收和准备同时减掉 | 准备足够时不影响利润表;准备不足时先补提差额再核销;核销不等于放弃债权 | 4.1 |
| 转回 | 已核销款项后续收回,或准备提多后冲回 | 转回金额 = 收回现金,或期初准备 − 期末应提;转回增加利润,但不增加收入 | 4.1 |
账期和 DSO 经常被当成同义词,实际一个是合同变量,一个是运营结果。LedgerLite 的合同写 Net 15,实际 DSO 是 18.2 天;Nord 写 Net 30,实际 DSO 是 26.6 天。差额来自预付款比例、开票批次和逾期结构,不是合同写错。
坏账准备、核销、转回是三个动作,不是一件事。计提进利润表,核销只动资产和准备,转回才把后续收回或估多的部分冲回利润;把核销当成第二次费用,会把坏账成本重复计算。第 4.1 节用 120 美元和 360 美元两个核销场景拆开了这三种动作。
账龄表还要区分三个概念:逾期比例是「有多少钱晚于约定日期」,准备率是「每一档预计收不回来多少」,核销是「确认某笔钱再也收不回来,把它从应收里拿掉」。三者混用,会让准备金额随口径漂移。第 3.2 节用 LedgerLite 的 6% 与 Nord 的 8% 演示了同一张余额表如何算出不同的准备。
三、风险类
风险类术语要分清「期望值」和「最坏值」。期望损失回答一年平均要准备多少钱,风险敞口回答一次事件最后自己承担多少;两个数不能相加,也不能互相替代。
| 术语 | 定义 | 计算式或判断口径 | 主要章节 |
|---|---|---|---|
| 风险敞口 | 风险事件发生后,企业最终要自己承担的金额 | 净敞口 = 最大损失 − 保险赔付 − 备份或预案恢复;期望损失是另一口径,不能与净敞口相加 | 2.1、11.2、12.3 |
| 期望损失 | 把不确定事件折算成一年的平均损失 | 期望损失 = 影响金额 × 概率;低 5%(500 bps)、中 15%(1,500 bps)、高 30%(3,000 bps)为教学设定 | 10.3、12.1 |
| RTO | 恢复时间目标,关键业务从中断到恢复可用所允许的最长小时数 | 停机现金影响 = 停机收入损失 + SLA 抵扣;RTO 越短,冗余成本越高 | 12.2、12.3 |
| RPO | 恢复点目标,最多允许丢失多少小时的数据 | 数据重建成本 = 丢失小时数 × 每小时重建成本;RPO 由备份频率决定 | 12.2、12.3 |
| 免赔 | 保险赔付前由投保人自己承担的第一段损失 | 赔付 = max(0,min(损失,保额)− 免赔);自留 = 损失 − 赔付 | 6.2、11.2 |
| 保额 | 保险人一次或累计最多赔付的金额,分总限额、单次限额、分项限额 | 可用保额 = min(总限额,单次限额,分项限额);覆盖倍数 = 保额 ÷ 单次最大损失 | 6.1、6.2、12.3 |
| 除外责任 | 保单明确不赔的损失类型,效果等于把免赔额提高到无限大 | 先看定义是否覆盖事故,再看除外清单,再看分项限额;被除外的损失全额自留 | 6.2、11.2 |
责任上限、保额、免赔和除外责任经常被放在一句话里说,实际是四道不同的墙。上限减少你对客户的负债,保额封顶保险人赔多少,免赔是你先承担的第一段,除外责任直接把某类损失归零。第 6.2 节用 $120,000 的损失演示了四者叠加后的赔付与自留。
RTO 和 RPO 是时间目标,不是损失金额。RTO 决定停机多久,RPO 决定丢多少数据;把 RTO 写成「尽快」无法比较方案,写成小时数才能和停机损失、SLA 抵扣放在同一张表上。第 12.2 节把三家案例的 RTO/RPO 换算成了现金影响。
风险敞口还有一层时间含义:保险赔付通常发生在企业先付钱之后。取证、通知和客户补偿要先垫,保险后报销;即使最终能赔,前几个月的现金流出仍然要自己承担。第 11.2 节提醒过,LedgerLite 年末现金 $95,000,一次 $115,000 的先付成本已经超过现金余额。
四、渠道与授权类
渠道与授权类术语的共同点是「用权利换收入」。返点换销量,区域保护换市场投入,独占换溢价,保底换下限;每一种交换都能算出一个平衡点,算不出平衡点的条款只是态度。三种授权的权利边界与定价见 8.1 授权类型:独占、排他、普通 。
| 术语 | 定义 | 计算式或判断口径 | 主要章节 |
|---|---|---|---|
| 返点 | 按年进货额或销量追溯给渠道的折扣,年底结算 | 净得 = 年进货额 − 返点;追溯返点按全年适用档位重算,增量返点只对超出部分计算 | 9.2 |
| 区域保护 | 厂商承诺在某区域只通过一家渠道销售,渠道承诺投入和最低销量 | 盈亏平衡销量 = 直销年净得 ÷ 渠道单笔净得;低于平衡线应降级为非独家 | 9.2 |
| 独占 | 只有一家被授权方,授权方自己也不能使用,且不得再许可 | 权利最宽,教学报价 4× 普通授权;放弃自用权前先算续作或自用的替代成本 | 8.1、8.3 |
| 排他 | 只有一家被授权方,但授权方自己仍可使用,且不得再许可 | 教学报价 2.5×;常被误当成独占,差别就在自用权 | 8.1、8.3 |
| 普通授权 | 多家被授权方,授权方保留自用权,通常允许再许可 | 教学报价 1×;若关闭再许可,价格应相应上调 | 8.1、8.3 |
| 保底 | 每个授权年度,被授权方支付保底金额与按净收入计算的版税中的较大值 | 实付 = max(保底,净收入 × 版税率);不是保底 + 分成;有效费率 = 实付 ÷ 净收入 | 8.2、8.3 |
| 版税 | 按净收入比例、销量或阶梯费率支付给授权方的分成 | 版税 = 净收入 × 费率,或销量 × 每份金额;基数必须写明是净收入还是标价收入 | 8.2、8.3 |
| 审计权 | 客户或被授权方检查账目、数据和使用范围的权利,通常限定次数和提前通知 | 审计成本 = 次数 × 每次准备工时 × 小时费率;审计收益 = 少报金额 × 追回比例 − 审计成本 | 8.3、11.1 |
独占、排他、普通授权的差别只在三组权利:被授权方数量、授权方能否自用、能否再许可。三者不是同义词;把排他当成独占,会让授权方在合同期内连自己的产品都不能用,却只收到排他的价格。第 8.1 节用 1×、2.5×、4× 三档报价把权利差异换算成了年费。
返点和区域保护改变的是实际单价,不是标价。追溯返点会在跨档时把前几笔一起重算,可能出现「多卖一笔、总净得反而下降」的返点悬崖;区域保护的盈亏平衡销量则取决于直销净得与渠道单笔净得的差。第 9.2 节用 8,500 美元的项目和 23 笔的平衡线演示了这两条。
保底与版税要按「取大」读,不是「保底 + 分成」。Tidecast 的 60,000 美元保底加 8% 净收入,在当前净收入 138,171 美元下,8% 只有 11,054 美元,实付仍是 60,000 美元,有效费率 43.4%。第 8.2 节给出了最低销量 52,174 份的反推。
五、数据类
数据类术语的财务量不是「有没有签」,而是「签完之后每年要维护多少工时、出事之后谁付钱」。DPA 和 SCC 在本卷只按商业义务说明,不分析法律适用;五项义务的工时口径见 11.1 DPA、SCC 与跨境传输 。
| 术语 | 定义 | 计算式或判断口径 | 主要章节 |
|---|---|---|---|
| DPA | 数据处理协议,约定处理范围、子处理者、跨境机制、审计和删除义务 | 年维护成本 = 年复核工时 × 小时费率;首年成本 = 年维护 + 首次设置工时 × 费率 | 11.1 |
| SCC | 跨境传输时客户常要求的一套标准合同条款,商业上是可审查、可复用的文档模板 | 首年成本 =(首次设置工时 + 年度复核工时)× 小时费率;后续年度只计复核工时 | 11.1 |
| 子处理者 | 受主处理者委托、实际处理数据或提供关键服务的第三方 | 新增前按合同提前 N 天通知客户;数量 × 评估与文档工时计入年维护成本 | 11.1、6.3 |
| 泄露通知 | 发现数据事件后,在约定时限内通知客户、个人或监管的动作 | 通知成本 = 通知对象数 × 单对象成本 + 法务与客服工时;72 小时是商业时钟,不是法律结论 | 11.2 |
DPA 的五项义务里,最容易低估的是删除与证明:合同终止不等于数据消失,证明数据消失才是最后一项工作。LedgerLite 的年维护成本按 24 小时 × $150 计算是 $3,600,首年加上 SCC 设置 12 小时是 $5,400;这笔钱要和它换来的企业客户资格一起看。
泄露通知的 72 小时是商业时钟,不是法律结论。真正决定成本的是四个口袋:取证、通知、客户补偿和罚款;前三个通常可保,罚款通常除外,免赔额和分项限额再把可赔部分压小。第 11.2 节用 $115,000 的可赔成本和 $10,000 免赔算出了 $10,000 到 $70,000 的净敞口。
六、术语速查
以下按拼音首字母排列,每条一句话,详细定义见前五张表。
| 术语 | 一句话解释 | 主要章节 |
|---|---|---|
| DPA | 数据处理协议,管处理范围、子处理者、跨境、审计和删除 | 11.1 |
| DSO | 应收 ÷ 年收入 × 365,衡量回款平均天数 | 1.3、3.1 |
| RPO | 最多允许丢失多少小时的数据 | 12.2 |
| RTO | 关键业务恢复可用所允许的最长小时数 | 12.2 |
| SCC | 跨境传输时客户常要求的标准合同条款 | 11.1 |
| SLA | 可用性承诺,决定允许停机时间 | 2.3 |
| 保底 | 保底与分成取大,不是保底加分成的预付款 | 8.2 |
| 保额 | 保险人最多赔多少,受总限额、单次限额、分项限额约束 | 6.2 |
| 版税 | 按净收入、销量或阶梯费率支付的分成 | 8.2 |
| 抵扣 | SLA 未达标时按费用基数减免的金额,属于收入折减 | 2.3 |
| 独占 | 一家被授权方,授权方也不能自用,不得再许可 | 8.1 |
| 返点 | 按年进货额追溯给渠道的折扣 | 9.2 |
| 风险敞口 | 一次事件最后由企业自己承担的金额 | 2.1、12.3 |
| 坏账准备 | 对预计收不回的应收计提的减值准备 | 3.2、4.1 |
| 核销 | 确认收不回后,把应收和准备同时减掉 | 4.1 |
| 泄露通知 | 发现数据事件后在约定时限内通知客户、个人或监管 | 11.2 |
| 期望损失 | 影响金额 × 概率,一年的平均风险成本 | 12.1 |
| 免赔 | 保险赔付前投保人先承担的第一段损失 | 6.2 |
| 赔偿 | 违约、侵权或第三方索赔的补偿,可能不受上限约束 | 2.1、5.1 |
| 排他 | 一家被授权方,授权方仍可自用,不得再许可 | 8.1 |
| 普通授权 | 多家被授权方,授权方可自用,通常可再许可 | 8.1 |
| 区域保护 | 某区域只通过一家渠道销售,通常附带最低销量 | 9.2 |
| 审计权 | 客户或被授权方查账、查使用范围的权利 | 8.3、11.1 |
| 退出通知 | 主动终止合同要提前多少天通知 | 2.2、9.3 |
| 续约窗口 | 不续约通知的最晚天数,决定收入确定性 | 2.2 |
| 验收 | 客户确认交付物满足约定条件的动作 | 1.2 |
| 责任上限 | 合同约定的最高赔偿金额 | 2.1 |
| 账期 | 发票开出后允许付款的天数 | 1.3、3.1 |
| 账龄分档 | 应收按 0–30、31–60、61–90、90+ 四段拆分 | 3.2 |
| 转回 | 已核销款收回或准备提多后的冲回 | 4.1 |
| 子处理者 | 受主处理者委托实际处理数据的第三方 | 11.1 |
| 除外责任 | 保单明确不赔的损失类型 | 6.2 |
速查表只负责定位,不负责解释。同一个词在不同章节可能用不同口径;例如「风险敞口」在第 2.1 节以「净敞口」出现,指责任上限减去保险赔付;在第 12.3 节以「缺口」出现,指最大损失减去保险与备份恢复。回到正文时,要先确认这一节用的是哪一种。
七、单位与精度约定
全书统一使用以下约定,附录 B 的事实表也遵循同一规则:
- 金额单位为美元,正文展示整数;需要小数时保留两位。代码与 lab 使用整数美分,避免浮点误差。
- 比率以基点表示,100 bps = 1%。正文可以写成百分比,但计算时先换成 bps;概率档位低 500 bps、中 1,500 bps、高 3,000 bps 是教学设定。
- 账龄以天为单位,取整数;DSO 保留一位小数。账龄分档固定为 0–30、31–60、61–90、90 天以上,四档之和必须等于应收总额。
- SLA 与停机时间以小时为单位;年度基数 8,760 小时,月度基数 730 小时。RTO 与 RPO 也以小时为单位,15 分钟写成 0.25 小时。
- 合同金额必须注明是「12 个月费用」「合同金额 100%」还是「已付费用」;三者在一年的合同上可能相同,在多年合同上会分叉。
- 派生数字必须写出公式,并从原始金额重算;不要用四舍五入后的中间值继续计算。
- 案例数字是教学假设,不是实测,也不代表任何真实公司。保费、免赔、准备率、回收概率、仲裁费用和迁移工时,都应在自己的表里替换成可核实的数字。
八、三案例横向对照
把本卷相关量压进一张表,可以看到三个案例的风险结构不是单点差异,而是合同、现金、保险和渠道同时朝不同方向偏移。
| 维度 | LedgerLite | Tidecast | Nord Studio |
|---|---|---|---|
| 主要合同 | 企业订阅协议、DPA | 平台发行协议、音乐买断授权 | 咨询合同、产品条款 |
| 账期 | Net 15 | 平台月结 30 天 | Net 30 |
| 应收余额与占年收入 | $12,000,5.0% | $0,0% | $11,264,7.3% |
| DSO | 18.2 天 | 0 天 | 26.6 天 |
| 逾期率(30 天以上) | 6% | 不适用 | 8% |
| 坏账准备率 | 1% | 0% | 2% |
| 责任上限 | 12 个月费用 $240,240 | 平台协议上限,案例未披露具体金额 | 合同金额 100% |
| SLA 与抵扣 | 99.5%,抵扣 10% | 平台可用性条款,卖方无对等抵扣 | 99.0%,抵扣 5% |
| 保险 | 网络安全险 $1,000,000 | 无 | E&O $500,000 |
| 关键依赖 | 云 60%、支付 25% | Steam 80% | 转介绍 55% |
| 集中度 | 前 5 家 31%,最大一家 9% | 平台 100% | 前 3 家 48% |
| 授权或渠道条款 | 无 | 保底 $60,000/年 + 8% 净收入,3 年 | 转介绍 55% |
| 风险缺口 | $13,337,占 SDE 10.2% | $232,430,占 SDE 191.8% | $27,462,占 SDE 80.0% |
| 期望损失 | $21,361,占 SDE 16.4% | $26,527,占 SDE 21.9% | $17,008,占 SDE 49.6% |
Tidecast 的 DSO 0 天是年末时点,不是没有账期。平台按月结算 30 天,案例设定年末应收为 0,说明结算恰好跨过资产负债表日;单一时点余额不能替代全年平均占用。
第一列的风险是「有合同、有保险、但尾部仍在」。LedgerLite 的 12 个月费用上限是 $240,240,网络安全险 $1,000,000 的名义覆盖是 4.16 倍;但免赔、分项限额和除外责任留下 $13,337 的缺口,占 SDE 10.2%。它的风险是已知且可承受的,前提是保险条款真的覆盖数据事件。
第二列的风险是「没有保险、渠道单点」。Tidecast 的 Steam 占净收入 80%,IP 授权又有三年最低保证 $180,000;两项缺口合计 $232,430,是 SDE 的 1.92 倍。它的风险不是「概率高」,而是「一次事件就能吃掉两年 owner earnings」,所以需要转移或降低渠道占比,而不是继续写预案。
第三列的风险是「人、客户、应收三件事叠在一起」。Nord 的 SDE 只有 $34,320,前 3 家客户占 48%,两位合伙人各占 50%,单笔应收 $11,264;缺口 $27,462 已经占 SDE 80.0%。同一个 $11,264,对 LedgerLite 是 SDE 的 8.6%,对 Nord 是 SDE 的 32.8%,这就是体量差异。
三列放在一起,可以得出一条比单章更清楚的结论:合同条款决定最坏损失,账期与账龄决定现金占用,保险与备份决定自留部分,渠道与授权决定收入能不能转移。四个变量里任何一个失控,都会把另外三个的缓冲吃掉。
九、怎么用这张表查错
当你发现合同台账、账龄表或风险登记册对不上,按下面的顺序查,通常五步之内能定位:
- 先查术语是不是同一个东西。 责任上限不是保额,抵扣不是成本,坏账准备不是核销,保底不是预付款,DPA 不是 SCC。五组里最容易混的是「上限」和「保额」:前者封你对客户的负债,后者封保险人赔多少。
- 再查期间。 年度合同收入与月度费用不能直接比;时点应收余额不等于全年平均占用;合同期是 3 年还是 12 个月,会让同一个「100%」变成两个数;RTO 是目标小时数,不是实际停机时长。
- 再查基数。 版税算在净收入还是标价收入;SLA 抵扣按月度费用还是年度费用;责任上限按单份合同还是公司累计;区域保护的平衡销量按直销净得还是标价。基数错一档,结果可能差几倍。
- 再查是否重复计算。 责任上限和保险不是相加关系;期望损失和净敞口不能相加;抵扣不是成本;核销不是第二次费用;保底与分成是取大,不是相加。把两个口径的数加在一起,是最常见的「算多了」。
- 最后从原始数字重算。 不要用四舍五入后的中间值继续乘除;账期用 365 天,不要用 12 × 30;SLA 用 8,760 或 730 小时,不要用 8,000 或 720;概率先把百分比换成 bps。多步推导后的几十美元偏差,通常来自中间值二次四舍五入。
| 现象 | 先查什么 | 本书口径 |
|---|---|---|
| 责任上限算出来比年收入小很多 | 单份合同还是公司累计 | 单份上限 × 合同数,或合同组合的累计上限 |
| 账期成本占收入比例对不上 | 用 365 天还是 12 × 30 天 | 年收入 × 账期 ÷ 365 |
| 坏账准备比统一比例高很多 | 是否按账龄分档 | 90 天以上档按更高准备率计提 |
| 保险赔了但缺口仍然很大 | 免赔、分项限额、除外责任 | 赔付 = max(0,min(损失,保额)− 免赔) |
| 保底与 8% 相加后金额偏高 | 是否把「取大」读成「相加」 | 实付 = max(保底,净收入 × 费率) |
| 风险登记册合计与保险缺口对不上 | 期望损失还是净敞口 | 两个口径分开列,不能相加 |
如果五步都一致,数字仍然对不上,那大概率不是算错,而是定义不同。回到对应的分组表,确认你用的指标和本书用的是不是同一个东西;确认之后,再决定是改自己的口径,还是在表里加一列说明差异。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。