一个面向保险资金资产配置和偿付能力敏感性分析的 Streamlit 应用。项目从月度偿付能力 Excel 底稿中读取核心监管指标、资产暴露和最低资本明细,支持快速比较历史趋势、构建资产调整情景,并观察对实际资本、最低资本和偿付能力充足率的影响。
该工具用于内部管理测算、组合敏感性分析和汇报材料准备,不替代监管报送系统或完整偿二代复算引擎。
以下图片为旧版页面的脱敏示意,尚未同步本轮四页面工作台布局;实际界面请以本地运行结果为准。
- 总览与归因:集中展示四项核心指标,选择比较期查看资本结构、风险子项和充足率变化桥接;首页不解析大型投资明细。
- 情景工作台:编辑草稿、启用/停用情景行,点击后统一应用;当前生效清单与正算结果始终明确区分。
- 目标倒推衔接:输入绝对充足率目标,区分目标下限与指定水平;方案可一键替换当前情景并用原精度金额复现。
- 资产与风险:按资产类型、账户和表层/穿透层筛选,检索证券明细及来源行。
- 数据与口径:展示总表勾稽、层级拆分及当前模型边界。风险视图不等于已去重的公司持仓。
当前仍为方向性情景模型。完整持仓重建、全部风险因子校准、任意曲线的资产负债重估不在本轮改版范围内。
- 表层持仓与穿透追溯:表层范围不混入底层;按账户和资产树定位表层及各层记录。展示币种、交易对手、发行人、到期结构及所选范围占比,未与总表对齐的金额明确保留。
- 底稿风险因子校准:App 默认使用 CAL_DETAIL 风险资本除以同类风险视图认可价值,先核对 S05 与 KBQS。覆盖利差、违约、权益、房地产、汇率及可明确分类的境外价格风险;可在高级参数中关闭以比较旧简化口径。
- 真实修正久期:收益率冲击使用 MC_RESULT 全价加权修正久期,并显示覆盖率,不再使用久期桶中点。仍是一阶近似,不包含凸性和负债重估。
- 方案管理:同底稿最多保存 6 个命名方案,支持 JSON 导出/载入、重新正算、多方案比较、新旧因子对照、单资产敏感性和等额资产切换草稿。方案仅保留在本次会话,切月前请下载。
校准因子是当前底稿的平均资本占用率,不是监管 RF。资产树仅用于追溯,本轮不将其自动转换成情景交易联动;父产品和底层记录不能同时当作独立持仓相加。
数据校验不会把必要风险暴露的空值自动当成零。当前 2026-02、2026-03 底稿各有 4 条汇率风险暴露缺失,相应情景计算会暂停并提示 Excel 行号;总览与总表勾稽仍可使用,需确认原始口径后再恢复情景计算。
- 月度底稿管理:自动扫描
origin stats/下的多期 Excel 底稿,按报告月份和底稿时点选择测算口径。 - 历史趋势看板:展示核心/综合充足率和较上一可用月份的变化,分别标注适用的 50%/100% 一般监管底线,不输出整体合规判断。
- 资产配置情景:支持已有资产类型的加减仓、价格变化和市场冲击;编辑金额以亿元输入,零持仓建仓暂不支持。
- 市场冲击模块:支持股市涨跌、国债和地方政府债按久期 bucket 输入收益率 bp 变化。
- 目标倒推:输入核心或综合充足率目标水平,在限定搜索范围内估算单一资产类型所需的调整金额或比例。
- 瀑布拆解:把充足率变化拆解为资本端影响、最低资本端影响和风险子项贡献,便于解释情景结果。
- 监管口径透明:页面保留风险因子、暴露变化、分账户资本和原始报表明细,方便追溯。
应用会读取 origin stats/ 目录下的 .xlsx 月度底稿。文件名约定为:
公司代码_报告月末_底稿时点[版本].xlsx
示例:
1000_20260430_20260512.xlsx
1000_20251231_20260113v2.xlsx
当前解析依赖的主要 sheet:
S01_:基准偿付能力指标。S05_:量化风险最低资本和风险子项。KBQS_V_:资产类型、认可价值和各类风险暴露。MC_RESULT_:资产端利率风险明细,用于反推利率风险因子和久期 bucket。CAL_DETAIL_:最低资本明细,用于反推利差风险因子。FLS05ACC_:分账户资本明细。
建议使用项目虚拟环境启动,避免和系统 Python 或 Homebrew Python 混用:
Windows PowerShell:
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe -m streamlit run app.py --server.address=127.0.0.1 --server.port=8501macOS / Linux:
.venv/bin/python -m streamlit run app.py如需重建环境:
python -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python -m streamlit run app.py打开页面后,在侧栏选择报告月份、底稿时点和页面。切换底稿会清空已应用情景;同名文件替换也会使缓存失效。
- 从
S01和S05读取基准认可资产、实际资本、最低资本、核心资本和偿付能力充足率。 - 从
KBQS_V汇总资产类型维度的认可价值和风险暴露。 - 从
MC_RESULT_资产端利率风险明细表按资产类型和久期 bucket 反推利率风险相关因子:
利率风险资产价值 = 账面价值净价 + 应收利息
利率风险抵减因子 = 资产端利率风险MC / 利率风险资产价值
PV口径抵减因子 = 资产端利率风险MC / PV基础
- 展示层的利率风险暴露优先采用 PV 口径抵减因子;当 PV 基础缺失时回退到利率风险资产价值口径。
- 从
CAL_DETAIL_最低资本明细表按资产类型反推利差风险因子:
利差风险因子 = 利差风险MC / 利差风险暴露
- 市场风险、信用风险和量化风险会按相关矩阵重算情景增量,再叠加到底稿基准值。
- 加仓/减仓/建仓默认只调整资产配置和风险暴露,不自动增加实际资本;页面可勾选“认可资产变化同步实际资本”。
- 上涨/下跌默认把估值变化计入实际资本和核心资本,因为该模块模拟已有资产的公允价值变化。
- 目标倒推中的目标值会自动换算为相对当前基准充足率的百分点变化。
更完整的计算说明见 docs/calculation_logic.md。
.
├── app.py # Streamlit 应用入口
├── solvency_app/
│ ├── analysis.py # 总表归因、勾稽与层级展示
│ ├── workbench.py # 情景编辑、校验与回放转换
│ ├── workbook.py # Excel 底稿发现、解析和校验
│ ├── scenario.py # 情景测算、资本增量和相关矩阵
│ ├── target.py # 目标倒推求解
│ └── policies.py # 政策 overlay 参数
├── origin stats/ # 月度偿付能力底稿
├── docs/
│ ├── calculation_logic.md # 计算逻辑说明
│ └── images/ # README 展示图
├── tests/ # 口径和情景测试
├── requirements.txt
└── runtime.txt
.venv/bin/python -m pytest- Python
- Streamlit
- Pandas
- OpenPyXL
- Altair
- 月度偿付能力指标复盘。
- 资产配置调整前的敏感性测算。
- 股市、利率和地方政府债冲击的快速情景分析。
- 向管理层解释“充足率变化来自哪里”。
- 为个人主页、项目作品集或内部汇报提供可视化案例。