估值核算曾经是基金运营最人工的环节。十多年前每家管理人估值组的日常是:下载清算文件和行情,打开一个层层嵌套的 Excel 估值模板,复制粘贴、检查勾稽、出表、发托管复核。一个熟练估值员一天手工处理十几只产品,出错率靠双人复核压着。今天主流机构已经全自动化,但自动化的过程不是"把 Excel 翻译成代码"那么简单——这篇讲流水线的环节设计和那些人工时代不会暴露的新问题。
人工时代的错误谱系
先复盘人工 Excel 估值错在哪,因为自动化系统必须证明不再犯这些错:
- 复制粘贴错位:多行少行、错列,估值表的行结构对不上时公式引用悄悄漂移;
- 版本错误:用了昨天的行情文件、旧费率的模板副本;
- 公式篡改:某人修了一个单元格公式救急,没同步其他产品,同类资产两种算法;
- 漏处理:某只停牌股忘了手工调估值,当天净值就用前收发了出去。
这四类的共同点是错误静默——Excel 不会报警,错了就错了,靠下一道复核环节抓。自动化的设计主线就是把"静默"变成"响亮":每个环节要么成功,要么显式失败,不允许第三种状态。
流水线环节与失败策略
自动化流水线(日终跑一遍,串行):
| 环节 | 职责 | 失败策略 |
|---|---|---|
| 数据接入 | 清算文件、行情、TA 数据落库,完整性校验(文件齐、字段非空、金额勾稽) | 停线——输入不齐往下算没意义 |
| 持仓对账 | 昨日持仓+今日变动 vs 清算持仓 | 停线——数量错一切白算 |
| 估值取价 | 按定价源优先级表取价(《公允价值与估值模型》) | 降级+告警——前收/昨估值顶上,挂异常清单 |
| 凭证生成 | 映射规则引擎出凭证,借贷平衡硬校验 | 停线——不平不入账 |
| 净值计算 | 四则运算+尾差挂账(《净值计算的四则运算》) | 停线 |
| 勾稽校验 | 三层勾稽(《估值表的勾稽》) | 阻断项停线,告警项挂工单 |
| 披露生成 | 净值公告、报表、报送文件 | 人工签字后放行 |
注意"降级+告警"只出现在估值取价环节。这是刻意的:取价失败(某只券当天没估值价)有业界公认的降级口径,且降级的影响可量化(前收 vs 今收的差进异常清单);其他环节的失败没有可信的降级路径,一律停线。降级路径必须显式登记——当天用了多少次降级、每次差异多少,次日估值员逐条确认,而不是藏在日志里。
规则全部配置化
人工时代的"公式"是 Excel 单元格,自动化的"公式"必须是配置表,不是代码。三类核心配置:
- 科目映射表:业务类型 → 会计科目的对照(《会计核算》篇的规则引擎),新增业务类型=加一行;
- 费用模板:费率、基数、分母、频率(《业绩报酬与费用计提》);
- 定价源优先级表:资产 × 状态 → 定价源与降级链。
配置化解决的是变更管理问题:监管改口径(比如新增一类免征资产、费率新规)时,改动是"改配置+测试",而不是"改代码+发版"。核心系统变更要走周末发布窗口(《变更管理》篇),配置变更走估值制度的修订流程——两条通道的审批成本差一个数量级。
测试:黄金文件回归
自动化估值系统必须配回归测试,方法与清算系统同构(《清算系统的测试策略》):黄金文件对比。维护一组"冻结"的历史交易日数据,每天估值结果(科目余额、凭证、净值)作为基准快照存库;任何代码或配置变更后重跑这些天,输出与快照逐分对比,零差异才允许上线。黄金日的选取有讲究:要覆盖历史踩过的坑(停牌、除权、负价差、巨额申赎),每个历史 bug 固化成一个测试日。这套回归的价值在第三、第四年——团队换血后没人记得当年的坑,黄金文件替团队记着。
红线:计算全自动,披露必签字
最后回到那条不变的红线。自动化每深入一个环节,都要回答同一个问题:这个环节静默失败,错误会走到哪一步? 如果答案是"走到已披露的净值",这个环节前面就必须有一个人工签字点。
实务上的落法:披露前的最后一张《估值核对单》自动生成(对账结果、降级清单、异常工单、尾差),但必须由估值员点"确认"——不是形式主义的点鼠标,签字人对清单内容负责,出了净值差错追查到人。机器算,人签字,签字的人对结果负责。这条规则不随自动化程度提高而放松,因为估值核算的错误是结论性的:净值已经披露,申赎已经确认,回头改的代价是公告级的。