FSB TLAC 双比率:TLAC/RWA 与 TLAC/杠杆敞口
FSB TLAC Dual Ratios: TLAC/RWA and TLAC/Leverage-Exposure
开始编码实现 solution(core_capital: float, bail_in_debt: float, rwa: float, leverage_exposure: float) -> list[float]。监管报送组每日需要输出全球系统重要性银行(G-SIB)的 FSB TLAC 看板。core_capital 是该行的监管资本(CET1 + AT1 + Tier-2,单位美元);bail_in_debt 是按 FSB Term Sheet 计入 TLAC 的合格自救债务(美元);rwa 是风险加权资产;leverage_exposure 是 Basel III 杠杆率分母用的总敞口度量。
输出为长度-2 列表 [tlac_to_rwa, tlac_to_leverage],由如下可观测公式定义:
- TLAC 分子:
tlac = core_capital + bail_in_debt。TLAC 是监管资本与合格自救债务之和——不是资本单项。 - RWA 比率:
rwa > 0时tlac_to_rwa = tlac / rwa;rwa == 0且tlac > 0返回float('inf');rwa == 0且tlac == 0返回float('nan')。 - 杠杆比率:
leverage_exposure > 0时tlac_to_leverage = tlac / leverage_exposure;leverage_exposure == 0且tlac > 0返回float('inf');leverage_exposure == 0且tlac == 0返回float('nan')。 - 输出:长度 2 的列表
[tlac_to_rwa, tlac_to_leverage],顺序固定。
两条比率独立计算——一条是有限数而另一条同时是 inf 或 NaN 的混合输出就是合同输出。
例
solution(1000.0, 800.0, 9000.0, 25000.0) 返回 [0.2, 0.072]。该行持有 1000 监管资本与 800 合格自救债务,故 tlac = 1800。RWA 为 9000、杠杆敞口度量为 25000。tlac_to_rwa = 1800 / 9000 = 0.2(远高于 18% 的 RWA 红线);tlac_to_leverage = 1800 / 25000 = 0.072(高于 6.75% 的杠杆红线)——两条比率均合规。
只有一条比率分母为零的算例:solution(500.0, 300.0, 0.0, 10000.0) 返回 [float('inf'), 0.08]。TLAC 为 800。RWA 为零(一家全现金的病态银行),故 tlac_to_rwa = inf;杠杆敞口为 10000,故 tlac_to_leverage = 800 / 10000 = 0.08。混合的 inf-加-有限数输出就是合同输出——两条比率相互独立。
边界:全零(solution(0.0, 0.0, 0.0, 0.0))返回 [float('nan'), float('nan')]——两条比率都是 0/0。core_capital = bail_in_debt = 0 但 rwa > 0 且 leverage_exposure > 0 时返回 [0.0, 0.0](一家完全资不抵债的银行)。一家恰好踩在 18% RWA 与 6.75% 杠杆门槛上的 G-SIB 返回 [0.18, 0.0675]。本函数对约束区间内的任何输入都不抛异常;inf 与 nan 哨兵就是分母为零退化情形的合同输出。
实现细节由 stubs/stub.py 提供。
实践背景
金融稳定理事会(FSB)的总损失吸收能力(TLAC)标准(FSB 2015 Term Sheet,2022 年完全实施)是叠加在 Basel III 之上的处置韧性要求,仅适用于全球系统重要性银行(G-SIB)。直观逻辑:处置中监管需要先把次级债自救(bail in),再触及优先级债权人或纳税人,所以损失吸收缓冲必须按"核心监管资本 + 合格次级自救债"计,而不是仅按资本计。FSB 用两条并行比率把这个缓冲钉死:一条风险加权比率 TLAC / RWA(2022 年起 ≥ 18%)和一条非风险加权比率 TLAC / leverage_exposure(2022 年起 ≥ 6.75%)。两条必须同时踩到红线之上——只满足 RWA 比率不算合格。solution(...) 输出的 [tlac_to_rwa, tlac_to_leverage] 就是处置规划组每日监控的 TLAC 看板。本函数刻意把以下几条概念约定显式化——TLAC 是资本加自救债(不是资本单项);两个分母独立(风险加权 vs 总敞口);两条比率以固定顺序输出,RWA 那条在前;每条比率独立处理自己的分母为零哨兵——这些正是处置规划管线和 FSB 同行评议里最常发生的方向性错误。纯 O(1) 实现(一次求和、两次除法)是该标准合计的标准模式;本题价值在于 FSB 特有的定义性不变量,而非算法深度。
约束条件
- 0.0 <= core_capital <= 1e10 且 0.0 <= bail_in_debt <= 1e10
- 0.0 <= rwa <= 1e11 且 0.0 <= leverage_exposure <= 1e11
- 输出:长度 2 的 list[float],顺序固定为 [tlac_to_rwa, tlac_to_leverage]
- 每个分量为非负有限值 或 float('inf')(分母为 0 且 TLAC > 0) 或 float('nan')(分母为 0 且 TLAC == 0);浮点比较器使用 rel_tol=1e-9, abs_tol=1e-9, nan_equals_nan=true
样例
Case 1 · statement-example: healthy gsib both ratios above thresholds
输入: [1000,800,9000,25000]
期望: [0.2,0.072]
tlac = 1000 + 800 = 1800;tlac_to_rwa = 1800 / 9000 = 0.2;tlac_to_leverage = 1800 / 25000 = 0.072。均高于 FSB 18% / 6.75% 红线。
Case 2 · statement-example: zero rwa one ratio inf the other finite
输入: [500,300,0,10000]
期望: ["Infinity",0.08]
tlac = 800;rwa = 0 且 tlac > 0 故 tlac_to_rwa = inf;tlac_to_leverage = 800 / 10000 = 0.08。两分母独立,产生混合 inf/有限输出。
Case 3 · visible: all zeros both ratios nan
输入: [0,0,0,0]
期望: ["NaN","NaN"]
tlac = 0 且两分母均为 0 -> 两条比率都是 NaN。
Case 4 · visible: at exact fsb thresholds 18 percent and 6.75 percent
输入: [1500,300,10000,26666.666666666668]
期望: [0.18,0.0675]
tlac = 1800;tlac_to_rwa = 1800 / 10000 = 0.18(FSB RWA 红线);tlac_to_leverage = 1800 / 26666.67 = 0.0675(FSB 杠杆红线)。
最近提交
还没有提交记录。
编码区
实现 solution(...)。本地运行当前支持 Python 可见样例;服务端提交会运行可见样例和隐藏测试。
默认展示公开样例。点击「运行样例」后会在这里显示实际输出;点击「提交评测」会进入隐藏测试。
Case 1 · statement-example: healthy gsib both ratios above thresholds
输入: [1000,800,9000,25000]
期望: [0.2,0.072]
tlac = 1000 + 800 = 1800;tlac_to_rwa = 1800 / 9000 = 0.2;tlac_to_leverage = 1800 / 25000 = 0.072。均高于 FSB 18% / 6.75% 红线。
Case 2 · statement-example: zero rwa one ratio inf the other finite
输入: [500,300,0,10000]
期望: ["Infinity",0.08]
tlac = 800;rwa = 0 且 tlac > 0 故 tlac_to_rwa = inf;tlac_to_leverage = 800 / 10000 = 0.08。两分母独立,产生混合 inf/有限输出。
Case 3 · visible: all zeros both ratios nan
输入: [0,0,0,0]
期望: ["NaN","NaN"]
tlac = 0 且两分母均为 0 -> 两条比率都是 NaN。
Case 4 · visible: at exact fsb thresholds 18 percent and 6.75 percent
输入: [1500,300,10000,26666.666666666668]
期望: [0.18,0.0675]
tlac = 1800;tlac_to_rwa = 1800 / 10000 = 0.18(FSB RWA 红线);tlac_to_leverage = 1800 / 26666.67 = 0.0675(FSB 杠杆红线)。