财务报表附注科目明细提取
从财务资料中提取可供下游 Agent 或模型计算的附注明细。只做忠实抽取、规范化和校验,不评价盈利、偿债、投资或信用风险。
读取参考文件
开始前读取:
references/schema.md:规范化记录字段、值状态和输出文件。references/account-playbook.md:各类科目的提取范围与防混淆规则。references/validation-rules.md:期间、单位、口径、勾稽、重复和 OCR 校验。references/output-template.md:清单、异常和 Markdown 输出模板。
默认参数
未指定时采用:
extraction_scope=all_note_details:选定报表口径内所有披露的科目附注明细;statement_scope=consolidated:合并口径;period_scope=primary_and_comparative:主要报告期及可比期;detail_level=complete:不因主观“重要性”删除已披露的非空明细;normalize_unit=false:保留原始单位,不静默换算;output_format=csv+md:规范化记录 CSV 加抽取清单与异常 Markdown;include_zero_items=meaningful:保留具有状态变化、风险或勾稽意义的零值;include_source=true、include_validation=true。
用户指定科目、期间、报表口径或输出格式时,以用户要求为准。资料过大时先生成附注目录和范围清单,再分批抽取,最终合并记录并全局去重。
执行流程
1. 建立文件与报表清单
记录主体、文件名、文件类型、报告类型、会计准则、主要报告期、币种默认值、审计状态、合并/母公司/备考/申报口径及页面编号体系。
同时保存:
- PDF 物理页码(从 1 开始);
- 报告印刷页码(如有);
- 附注号、附注标题、表名和跨页范围。
不要把文件首页单位自动套用到全部附注表;每张表单独确认币种和单位。
2. 选择并定位附注
定位主表科目对应附注及与该科目直接相关的受限、减值、担保、关联方、分部、承诺或期后事项说明。不得重复提取完整资产负债表、利润表和现金流量表。
保留附注明细表的合计行用于勾稽,标记 row_role=total。不要因为合计在主表出现过就删除附注合计。
3. 按文件类型抽取
- 数字 PDF:先抽取文本与表格,再渲染对应页面做视觉核对。
- 扫描 PDF/图片:先旋转、裁切和 OCR,只对目标页处理;对低置信度数字回看原图。
- Word:读取表格结构、合并单元格、脚注和标题层级。
- Excel:使用结构化单元格 API,保留工作表、单元格范围、公式显示值和隐藏行列说明。
跨页表格必须按表头、列数、单位和脚注连续性拼接。横向或旋转页面先恢复方向。不要仅依赖 OCR 文本顺序重建复杂表格。
4. 规范化为逐值记录
按 references/schema.md 生成一行一个值的长表记录。必须同时保留:
value_raw:原文字符串;value_status:numeric/zero/dash/blank/not_applicable/text/unreadable;value_numeric:仅在可可靠解析时填写;- 原始币种、单位、正负号语义;
- 完整日期或期间;
- 报表口径、调整状态、分析维度和项目层级;
- PDF 页、印刷页、表名及来源定位。
不得把空白、破折号、不适用和 0 合并。括号负数、损失转回、红字冲减必须保留原文符号语义。
5. 处理多维披露与重复
产品、地区、客户、账龄、减值和分部属于不同分析维度,即使金额相同也不能互相删除或加总。
仅在记录身份一致且属于重复披露时建立 duplicate_group_id 和 cross_reference_record_id:
文件 + 报表口径 + 报告基础 + 科目 + 分析维度 + 项目路径
+ 日期/期间 + 币种 + 单位 + 来源表
保留一条计算主记录,其余记录作为来源交叉引用;不要凭“金额相同”判断重复。无法确认时全部保留并标记“疑似重复披露”。
6. 执行校验
按 references/validation-rules.md 检查:
- 明细与附注合计;
- 账面余额减准备与账面价值;
- 期初 + 增加 - 减少与期末;
- 本期/上期、期初/期末和追溯调整;
- 合并/母公司、原报表/备考、调整前/后;
- 单位、币种、数量级和 OCR 易错字符;
- 长期借款与一年内到期部分、受限资金等交叉披露。
原文不一致时不得改数。保留原值,将差异写入异常清单。
运行规范化记录校验器:
python scripts/validate_records.py records.csv
也支持 JSONL:
python scripts/validate_records.py records.jsonl
修复结构错误;无法消除的来源问题保留为警告和异常记录。
7. 输出交付物
默认输出:
主体_附注科目明细_报告期_records.csv:唯一计算主数据;主体_附注科目明细_报告期_manifest.md:文件、范围、口径、统计和使用说明;主体_附注科目明细_报告期_issues.csv:异常与分析限制;- 用户要求时附加 Markdown、JSONL、XLSX 或 DOCX。
不得在补充说明中再次复制主数据金额。超大记录集不要仅用 Markdown 交付,以免截断或破坏表格结构。
禁止事项
- 不编造、猜测或擅自修正数字;
- 不静默换算单位或币种;
- 不混用不同期间、口径、报告基础或会计准则;
- 不把账面余额、减值准备和账面价值混为一项;
- 不把不同披露维度互相加总;
- 不用金额相同作为唯一去重依据;
- 不省略影响数据含义的脚注;
- 不提取完整主表、完整会计政策或完整审计意见;
- 不计算财务比率,不输出财务、投资、信贷或估值判断。
交付前质量门槛
确认:
- 所有计算记录都有唯一
record_id和可复核来源; - 原始值和值状态完整,空白/破折号/零未混淆;
- 货币值有币种和单位,百分比/数量未伪装成金额;
- 时点数和期间数使用完整日期;
- 合并、母公司、备考、申报及调整口径未混用;
- 跨页表格和低置信度 OCR 已视觉复核;
- 同一维度合计可勾稽或已列示差异;
- 重复披露通过关联标记处理,没有误删不同维度记录;
- 校验器无结构错误,剩余警告已进入异常清单;
- 输出仅包含抽取结果和限制说明,没有财务评价。
Scan to join WeChat group