# Financial Report Reader

> 财报三表（利润表、资产负债表、现金流量表）深度解读，自动进行同比/环比变动分析并执行多维度财务异常检测（如应收账款暴增、经营现金流与净利润背离、存货积压及毛利率突变等）。当用户需要解读财报、分析三表、做同比/环比比较、检测财务异常信号、评估现金流质量或计算关键财务比率时触发，关键词包括财报、三表、同比、环比、异常检测、应收账款、现金流背离、毛利率、financial statements、earnings report。

- Skill: `haomingz/financial-report-reader` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add haomingz/financial-report-reader`
- Raw SKILL.md: https://api.skillmd.com/api/skills/haomingz/financial-report-reader/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- License: MIT
- Author: haomingz (https://skillmd.com/u/haomingz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/haomingz/financial-report-reader

---


# 财报三表解读 — 同比环比 + 异常检测

对企业利润表、资产负债表、现金流量表进行结构化分析：自动计算同比（YoY）/ 环比（QoQ）变动，运行多维度异常检测规则（应收暴增、现金流背离利润、存货积压、毛利率突变等），输出可读报告。

## 能力概览

| 能力 | 说明 |
|------|------|
| 同比分析（YoY） | 对比同期数据（如 2024Q1 vs 2023Q1），识别趋势变化 |
| 环比分析（QoQ） | 对比相邻期间数据（如 2024Q2 vs 2024Q1），捕捉短期波动 |
| 财务比率 | 毛利率、净利率、资产负债率、流动比率、应收周转天数等 |
| 异常检测 | 10 项规则自动扫描，输出风险等级和解读说明 |

## Quick Start

```bash
# 基本用法：分析 JSON 格式的财务数据
python scripts/analyze_financials.py data.json

# 输出 JSON 格式结果
python scripts/analyze_financials.py data.json --json

# 导出到文件
python scripts/analyze_financials.py data.json --output report.json

# 生成示例数据文件（用于测试）
python scripts/analyze_financials.py --sample > sample_data.json

# 自定义异常检测阈值
python scripts/analyze_financials.py data.json --ar-threshold 0.25 --ocf-ratio 0.4
```

## 输入数据格式

脚本接受 JSON 文件，格式如下：

```json
{
  "company": "示例公司",
  "currency": "CNY",
  "unit": "万元",
  "periods": ["2023Q1","2023Q2","2023Q3","2023Q4","2024Q1","2024Q2","2024Q3","2024Q4"],
  "income_statement": {
    "revenue": [5000, 5200, 4800, 6000, 5500, 5800, 5100, 6500],
    "cost_of_revenue": [3000, 3100, 2900, 3500, 3400, 3600, 3200, 4100],
    "operating_income": [800, 850, 750, 1000, 780, 820, 700, 900],
    "net_income": [600, 650, 560, 780, 580, 620, 520, 680]
  },
  "balance_sheet": {
    "accounts_receivable": [2000, 2100, 2200, 2300, 2800, 3200, 3600, 4200],
    "inventory": [1000, 1050, 1100, 1200, 1100, 1150, 1200, 1300],
    "total_current_assets": [5000, 5200, 5400, 5800, 6000, 6500, 7000, 7500],
    "goodwill": [500, 500, 500, 500, 500, 500, 500, 500],
    "total_assets": [15000, 15500, 16000, 16500, 17000, 17500, 18000, 18500],
    "accounts_payable": [1500, 1600, 1550, 1700, 1650, 1750, 1700, 1800],
    "total_current_liabilities": [4000, 4200, 4100, 4500, 4300, 4600, 4500, 4900],
    "total_liabilities": [8000, 8200, 8400, 8600, 8800, 9000, 9200, 9500],
    "total_equity": [7000, 7300, 7600, 7900, 8200, 8500, 8800, 9000]
  },
  "cash_flow": {
    "operating_cash_flow": [700, 750, 620, 850, 300, 280, 250, 200],
    "investing_cash_flow": [-200, -180, -250, -300, -400, -350, -300, -280],
    "financing_cash_flow": [-100, -50, -80, -120, 200, 150, 100, 50],
    "capex": [180, 160, 230, 280, 380, 330, 280, 260]
  }
}
```

**字段说明：**
- `periods` 支持季度格式（`2024Q1`）和年度格式（`2024`），脚本自动识别
- 各数组长度必须与 `periods` 长度一致
- 缺少的字段会跳过对应分析（不会报错）
- `unit` 为显示单位，仅用于报告展示

## 参数说明

| 参数 | 简写 | 必填 | 默认值 | 说明 |
|------|------|------|--------|------|
| `input` | - | 是* | - | 输入 JSON 文件路径 |
| `--json` | `-j` | 否 | false | 以 JSON 格式输出 |
| `--output` | `-o` | 否 | stdout | 输出文件路径（.json） |
| `--sample` | `-s` | 否 | false | 输出示例数据到 stdout |
| `--ar-threshold` | - | 否 | 0.20 | 应收账款异常阈值（增速差） |
| `--inv-threshold` | - | 否 | 0.15 | 存货异常阈值（增速差） |
| `--ocf-ratio` | - | 否 | 0.50 | 现金流/利润背离阈值 |
| `--margin-threshold` | - | 否 | 0.05 | 毛利率突变阈值 |
| `--debt-ceiling` | - | 否 | 0.70 | 资产负债率警戒线 |
| `--current-floor` | - | 否 | 1.00 | 流动比率警戒线 |
| `--goodwill-ceiling` | - | 否 | 0.30 | 商誉占比警戒线 |

\* 使用 `--sample` 时 input 非必填。

## 异常检测规则

脚本内置以下 10 项异常检测规则：

| # | 规则 | 触发条件 | 风险含义 |
|---|------|----------|----------|
| 1 | 应收账款暴增 | AR 增速 - 收入增速 > 阈值 | 可能虚增收入或回款困难 |
| 2 | 现金流背离利润 | OCF / Net Income < 阈值 | 盈利质量低，利润含"水分" |
| 3 | 存货积压 | 存货增速 - 收入增速 > 阈值 | 产品滞销或减值风险 |
| 4 | 毛利率突变 | 毛利率变动 > 阈值 | 定价能力或成本结构异变 |
| 5 | 净利率突变 | 净利率变动 > 阈值 | 费用管控或非经常损益异常 |
| 6 | 经营现金流持续为负 | 连续 2+ 期 OCF < 0 | 造血能力不足 |
| 7 | 商誉占比过高 | 商誉 / 总资产 > 阈值 | 减值"黑天鹅"风险 |
| 8 | 资产负债率过高 | 负债 / 资产 > 阈值 | 偿债压力大 |
| 9 | 流动比率过低 | 流动资产 / 流动负债 < 阈值 | 短期偿债能力不足 |
| 10 | 应付账款异常 | AP 增速显著偏离成本增速 | 供应链关系或资金链异常 |

## LLM 解读指引

当用户提供财报数据（PDF/图片/表格/文本）时，按以下步骤操作：

1. **数据提取**：将用户提供的财报数据整理为上述 JSON 格式，保存为临时文件
2. **运行分析**：调用 `scripts/analyze_financials.py` 执行量化分析
3. **综合解读**：结合脚本输出和以下分析框架，给出中文解读

### 三表联动分析框架

- **利润表 → 资产负债表**：收入增长是否由应收账款驱动？净利润是否转化为留存收益？
- **利润表 → 现金流量表**：净利润与经营现金流是否匹配？折旧摊销是否合理回加？
- **资产负债表 → 现金流量表**：资产扩张的资金来源？投资活动是否与资本开支一致？

### 异常信号的上下文判断

异常信号不等于"公司有问题"，需结合行业和经营背景判断：
- 应收暴增在 To-B 企业年末可能是正常的季节性波动
- 高负债率在公用事业、房地产行业属行业常态
- 短期现金流为负在高成长期企业（如 SaaS）可能合理

### 输出建议格式

```
## 财报分析报告 — [公司名称]

### 核心指标速览
（关键指标表格）

### 同比/环比变动亮点
（Top 3-5 变动最大的指标及解读）

### 异常信号
（检测到的异常逐项说明，含严重程度和可能原因）

### 三表联动分析
（跨报表的逻辑验证结论）

### 总结与建议
（1-2 段综合评价）
```

