Learning
VOL. VII · NO. 127 · OTC Derivatives · 19 JUL 2026

Third Party Guarantee And Principal Protected

OTC 衍生品 · 19 JUL 2026 · 7 min read · 1,555 words
· · ·

ODTS 77 — 第三方担保与本金保障型产品:担保品之外的”信用增强”

为什么需要这篇文档

61-Collateral-Management 写了”担保品”(现金/债券质押覆盖保证金),72 写了”风控规则引擎”,76 写了”标的”。但有一类真实存在、且直连监管报送的业务域,三篇都没覆盖:

第三方担保 / 本金保障型(principal-protected)结构化产品。

代码库里,担保(guarantee)不是 61 文档里”质押券”那种担保品,而是一整套**“本金保障型收益凭证”的产品族**——它们在数据库里以 GUARANTEE_VAN / _DSF / _CPS / _DIG / _SF 五种审核视图存在,每一种都对应一类结构化产品,并且每一种都强制要求 SAC 监管报送。同时,CounterpartyAgreement(对手方协议)模型把”主协议 + 产品签署 + 是否报送”绑在一起。

一个 PM/BA 如果不知道”本金保障型”是 ODTS 里一个独立且强监管的产品族,在做收益凭证、监管报送、对手方协议相关需求时会严重误判范围。


1. 本金保障型产品族(VAN / DSF / CPS / DIG / SF)

数据库里的审核视图直接暴露了产品族的划分(eds-web-app/db/EDS/code/views/):

v_report_audit_guarantee_van.sql   — 本金保障型(VAN)
v_report_audit_guarantee_dsf.sql   — DSF 型
v_report_audit_guarantee_cps.sql   — CPS 型
v_report_audit_guarantee_dig.sql   — DIG 型
v_report_audit_guarantee_sf.sql    — SF 型
(每种都有对应的 _auditlogguarantee_xxx 变更日志视图)

每张视图都挂在一张审核模板上(见 T051_GUARANTEEVANR033/L033 模板记录:本金保障型(VAN)审核模板)。

业务含义: “本金保障型”不是单一产品,而是一个有 5 个变体的产品族,每个变体(VAN/DSF/CPS/DIG/SF)是收益凭证的一种结构(不同挂钩标的、不同保本比例、不同收益结构)。它们在系统里被当成需要独立审核、独立报送的品类对待——这就是为什么数据库里不是一张表,而是五套审核视图 + 五套日志视图。

这和 07-Business-Concepts 里”簿记口径 vs 定价口径双枚举”是同一类现象:一个业务概念(本金保障型)在系统里被拆成多个技术变体,PM/BA 必须知道全部分支,否则需求只覆盖一种变体会漏掉另外四种。


2. 对手方协议(CounterpartyAgreement):主协议 + 产品签署 + 报送开关

CounterpartyAgreement 模型(action/dynamic/model/CounterpartyAgreement.java)是把”法律协议”和”系统行为”绑定的关键对象:

字段含义
masterAgrmtno / mMasterAgrmtVer主协议编号 / 版本(如 ISDA/SAC/NAFMII,见 63)
mSigningDate主协议签署时间
mNeedReport主协议是否报送
mfillParty协议申报角色(发起方/对手方)
pProductMode产品签署模式
pTheDateTable产品签署时间表
pNeedReport产品是否报送
pSuchProducts签署的产品列表
quotaApplyId / counterpartyApplyId关联的额度/对手方申请
type协议类型
counterpartyAgreementDoc协议文档(附件)

业务含义: 一份对手方协议 = “我们和这个客户签了哪份主协议(m 开头字段)+ 在这份主协议下允许做哪些产品(p 开头字段)+ 每一层要不要报监管”。mNeedReport / pNeedReport 两个开关直接驱动 38-Regulatory-Reporting 的报送范围——协议里没打报送标记的,监管报告里就不会出现

履约担保协议(PerformanceGuaranteeAgrmt)

叠加在对手方协议之上的,是 PerformanceGuaranteeAgrmt(履约担保协议):

字段含义
counterpartyAgreementId关联的对手方协议
gSupagrmtno担保协议编号
gPerformanceGuaranteeAgrmt履约担保协议内容
gNeedReport履约担保是否报送

注意又是第三个报送开关(gNeedReport)。一个产品从”签主协议 → 签产品 → 签履约担保”三层,每层都有独立报送标记——这就是 38 文档里”为什么同一笔业务在监管报告里有时出现、有时不出现”的底层原因之一。


3. 本金保障型的确认书生成(Risky / RHEG)

RiskyConfContractParamGeneratorutils/contract/)专门生成本金保障型(代码里叫 RHEG,即 RISKY 头)的确认书(confirmation),它实现了 ContractParamGenerator 接口,为每种确认书生成对应参数:

RHEG_I_CONTRACT — RISKY 头初始确认书
RHEG_S_CONTRACT — RISKY 头追加/修改确认书
RHEG_P_CONTRACT — RISKY 头个人客户确认书
RHEG_C_CONTRACT — RISKY 头机构客户确认书

业务含义: 本金保障型产品的确认书不是通用模板,而是按”初始/追加 × 个人/机构”拆成四种。这呼应 06-Code-Map 里”确认书字段填充在 generator 不在业务项目”的架构事实——确认书是模板 + 参数生成器模式,每个产品族有自己的 generator。PM/BA 做确认书需求时,要找的是对应的 XxxConfContractParamGenerator,不是去改业务项目。

相关动作 TrsRiskyConfExecutePrintAction(执行打印)、TrsRiskyConfRevokeAction(撤销)表明本金保障型确认书还有执行打印和撤销的完整生命周期。


4. 它和担保品系统(61)的区别(别搞混)

概念本文(第三方担保/本金保障型)61-Collateral-Management
本质一类产品族(本金保障型收益凭证)覆盖保证金的质押物机制
作用产品本身的信用增强 / 本金保障结构交易后的风险覆盖
监管强制 SAC 报送(5 种变体各报各的)不直接报送,影响保证金计算
代码CounterpartyAgreement / GUARANTEE_* 视图 / RHEG generatoreds-web-app/.../collateral/

一句话: 61 是”借钱要押东西”,本文是”这个产品本身就带保本结构、且每卖一笔都要报监管”。两者都叫”担保/保障”,但完全是两回事。


5. 内行才知道的:三道报送开关是监管漏报的高发区

mNeedReport(主协议)/ pNeedReport(产品)/ gNeedReport(履约担保)三个开关,任意一个被漏勾,对应的业务就不会进 SAC 报告。而这三个开关分散在 CounterpartyAgreementPerformanceGuaranteeAgrmt 两个对象里,且默认不是自动全开——依赖业务人员在签约时手动勾选。

这解释了 38-Regulatory-Reporting 里”报送范围对齐”为什么是个长期痛点:报送的源头不是”监管要什么”,而是”签约时有人勾了什么”。一个成熟的 PM/BA 在做报送相关需求时,会先问”报送标记从哪来、谁负责勾、默认值是什么”,而不是只盯着报告生成那段代码。


自测

  • “本金保障型”在 ODTS 里是单一产品还是产品族?证据是什么(哪类数据库对象)?
  • CounterpartyAgreement 里哪两个字段分别控制”主协议报送”和”产品报送”?
  • 履约担保协议(PerformanceGuaranteeAgrmt)带来第几个报送开关?三者任一漏勾会怎样?
  • 本金保障型确认书有几种?它们按什么维度拆分?
  • 本文的”第三方担保/本金保障型”和 61 的”担保品”本质区别是什么?

相关阅读:61-Collateral-Management.md(质押担保品)、38-Regulatory-Reporting-Evolution.md(SAC 报送)、63-Master-Agreement-Comparison.md(主协议)、06-Code-Map.md(确认书 generator 模式)