《独立开发者的商业指南·合同、应收与风险》附录 A 术语与指标

本附录把卷二用到的合同、应收、风险、渠道授权和数据五类术语收成五张分组表,每条给出定义、计算式或判断口径、所在章节,并附术语速查、单位与精度约定、三案例横向对照和查错顺序。它用来跨章核对同一个词是不是同一种算法,也用来检查合同台账、账龄表和风险登记册的口径。附录只做商业口径说明,不构成法律意见。

以下情境为教学假设,人物与数字不代表经核实的真实案例。

卷二前 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
验收客户确认交付物满足约定条件的动作,验收标准决定收入确认和回款起点可判定 = 有输入、有阈值、有测试方法、有期限;真实现金周期 = 验收等待 + 开票后 DSO1.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%」还是「已付费用」;三者在一年的合同上可能相同,在多年合同上会分叉。
  • 派生数字必须写出公式,并从原始金额重算;不要用四舍五入后的中间值继续计算。
  • 案例数字是教学假设,不是实测,也不代表任何真实公司。保费、免赔、准备率、回收概率、仲裁费用和迁移工时,都应在自己的表里替换成可核实的数字。

八、三案例横向对照

把本卷相关量压进一张表,可以看到三个案例的风险结构不是单点差异,而是合同、现金、保险和渠道同时朝不同方向偏移。

维度LedgerLiteTidecastNord Studio
主要合同企业订阅协议、DPA平台发行协议、音乐买断授权咨询合同、产品条款
账期Net 15平台月结 30 天Net 30
应收余额与占年收入$12,000,5.0%$0,0%$11,264,7.3%
DSO18.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%,这就是体量差异。

三列放在一起,可以得出一条比单章更清楚的结论:合同条款决定最坏损失,账期与账龄决定现金占用,保险与备份决定自留部分,渠道与授权决定收入能不能转移。四个变量里任何一个失控,都会把另外三个的缓冲吃掉。

九、怎么用这张表查错

当你发现合同台账、账龄表或风险登记册对不上,按下面的顺序查,通常五步之内能定位:

  1. 先查术语是不是同一个东西。 责任上限不是保额,抵扣不是成本,坏账准备不是核销,保底不是预付款,DPA 不是 SCC。五组里最容易混的是「上限」和「保额」:前者封你对客户的负债,后者封保险人赔多少。
  2. 再查期间。 年度合同收入与月度费用不能直接比;时点应收余额不等于全年平均占用;合同期是 3 年还是 12 个月,会让同一个「100%」变成两个数;RTO 是目标小时数,不是实际停机时长。
  3. 再查基数。 版税算在净收入还是标价收入;SLA 抵扣按月度费用还是年度费用;责任上限按单份合同还是公司累计;区域保护的平衡销量按直销净得还是标价。基数错一档,结果可能差几倍。
  4. 再查是否重复计算。 责任上限和保险不是相加关系;期望损失和净敞口不能相加;抵扣不是成本;核销不是第二次费用;保底与分成是取大,不是相加。把两个口径的数加在一起,是最常见的「算多了」。
  5. 最后从原始数字重算。 不要用四舍五入后的中间值继续乘除;账期用 365 天,不要用 12 × 30;SLA 用 8,760 或 730 小时,不要用 8,000 或 720;概率先把百分比换成 bps。多步推导后的几十美元偏差,通常来自中间值二次四舍五入。
现象先查什么本书口径
责任上限算出来比年收入小很多单份合同还是公司累计单份上限 × 合同数,或合同组合的累计上限
账期成本占收入比例对不上用 365 天还是 12 × 30 天年收入 × 账期 ÷ 365
坏账准备比统一比例高很多是否按账龄分档90 天以上档按更高准备率计提
保险赔了但缺口仍然很大免赔、分项限额、除外责任赔付 = max(0,min(损失,保额)− 免赔)
保底与 8% 相加后金额偏高是否把「取大」读成「相加」实付 = max(保底,净收入 × 费率)
风险登记册合计与保险缺口对不上期望损失还是净敞口两个口径分开列,不能相加

如果五步都一致,数字仍然对不上,那大概率不是算错,而是定义不同。回到对应的分组表,确认你用的指标和本书用的是不是同一个东西;确认之后,再决定是改自己的口径,还是在表里加一列说明差异。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「books」更多文章

  1. 《移动游戏产品的架构·商业化与发行工程》附录 C 商业化与发行评审清单
  2. 《移动游戏产品的架构·商业化与发行工程》附录 B 双案例商业化事实表
  3. 《移动游戏产品的架构·商业化与发行工程》附录 A 商业化与发行术语速查