PDF Statement Parser 是一个提示词驱动的财务对账单提取方法技能。银行、券商、退休金、HSA 和抵押贷款对账单以各种排版样式作为 PDF 送达。本技能负责:识别文档类型、按标签(而非位置)定位标准字段、提取每一条交易或持仓行、并输出严格的 JSON 记录。所有金额转为整数分,所有日期转为 ISO 8601(YYYY-MM-DD)。
使用方式 可直接配合 Claude 的 PDF 阅读功能使用:读取 PDF,然后对可见内容运行本技能的工作流,无需外部库。
输入契约 调用方提供: pdf_path —— 单份对账单 PDF 的绝对路径。 expected_type(可选)—— 取值为 checking_statement | savings_statement | credit_card_statement | brokerage_statement | 401k_statement | hsa_statement | mortgage_statement | tax_form | insurance_doc | unknown。缺省时由技能自动检测。 known_accounts(可选)—— 数组,元素为 {id, institution, mask, type},用于匹配。
工作流(八步)
- 读取 PDF(第一遍读第 1-2 页获取页眉)。超过 10 页的 PDF 分块读取:先读第 1-5 页(页眉加首批交易),再按需读取后续区间,并跟踪总页数。
- 根据页眉关键词检测文档类型。
- 提取账户身份(机构 + 掩码 + 类型)。掩码仅存末四位,统一格式 ****1234,绝不解取或存储完整账号。
- 提取对账单周期(起始/结束日期)。
- 提取余额标记(期初/期末/可用)。
- 提取行项目(交易、持仓或事件)。
- 归一化:金额 $1,247.50 → 124750 分,负数流出 -$87.42 → -8742;日期 01/15/26 → 2026-01-15。
- 对每个字段评分置信度;输出 JSON。
各文档类型手册要点
- checking/savings:必填机构、掩码、周期、期初/期末余额、交易数组;须核对 期初 + Σ交易 = 期末,误差在 ±$1 内。
- credit_card:必填机构、掩码、周期、期初/期末余额、账单余额、最低还款、还款到期日、交易数组;须明确并记录符号约定。
- brokerage:必填机构、掩码、账户类型、周期结束、总值、持仓数组;提供资产类别映射(美股、国际股、美债、现金、REIT、目标日期基金等),无法映射时 asset_class 置 null,置信度 0.5。
- 401k:必填机构、持有人、周期结束、总余额、YTD 供款(如显示)、雇主匹配(如显示)、持仓数组;如有 vesting 列须单独记录已归属金额。
- hsa:必填机构、周期结束、现金、投资、总额、YTD 供款、YTD 支取(如显示);如打印了覆盖类型须记录。
- mortgage:必填机构、掩码、周期结束、当前本金、每月本息、每月托管、下次还款日、近期还款数组;如打印年利率须记录。
- tax_form:必填表单类型(W-2、1099-DIV、1099-INT、1099-B、1098、5498-SA、1095 等)、税年、签发方、接收方、关键框位;本技能仅抓取框位数值,解读交由下游税务代理。
输出契约 输出单个 JSON 对象,包含 document_type、source_path、institution、account(mask/type/owners/match/match_confidence)、period、balances、transactions(或 holdings)、reconciliation、extracted_at、overall_confidence、warnings 等字段。
置信度评分 1.0 直接来自带标签字段;0.85-0.95 来自位置上下文;0.6-0.8 由周边文本推断或部分 OCR;小于 0.6 标记人工复核。整体记录置信度取必填字段各字段置信度的最小值。
防护规则 绝不编造数值,不可见字段置 null 并添加警告,不做插值;此处不规范化商户名(由记账员负责),逐字节保留 description_raw;此处不对交易分类(分类为下游步骤);现金/信用卡对账单在声明 ok: true 前必须核对;默认币种为 USD,非 USD 时记录币种代码但不自动转换;仅存账户掩码,绝不存储完整账号。