18 项指标算偿债营运盈利成长,分母不可用就标算不出,同业基准只是占位
financial-ratioSKILL.md 为准。> **本地运行,零网络、免 API Key、数据不出电脑。**
> 四项诚实承诺:① 算不出就说算不出,绝不编造数字;② 高危动作强制人工确认;③ 幂等断点,绝不重复副作用;④ 全程留痕可审计。
# 财务指标分析
财务人看一家公司,最终都落到这几类指标。但指标算错比不做更危险——
分母是 0、报表里没有这一行、上期数据没给,这些情况一旦硬算,
出来的数字看着有模有样,实际上毫无意义。
本包的原则:**算不出来就明说算不出来,并写清楚为什么**。
## 18 项指标
| 类别 | 编号 | 指标 |
|---|---|---|
| 偿债 | S01–S05 | 流动比率、速动比率、现金比率、资产负债率、权益乘数 |
| 营运 | O01–O04 | 应收账款周转率、存货周转率、流动资产周转率、总资产周转率 |
| 盈利 | P01–P05 | 毛利率、营业利润率、净利率、ROE、ROA |
| 成长 | G01–G04 | 营业收入增长率、净利润增长率、资产总额增长率、净资产增长率 |
## 输入:1~N 个报表文件
第一个文件是**本期**,第二个是**上期**,第三个是**上上期**。
多个文件会**按「项目」横向合并**——比如资产负债表(本期)+ 利润表(本期)
合成本期的数据集;上期则由上期资产负债表 + 上期利润表合成。
> 同一期间可以有两个文件(资产表 + 利润表),所以 `--periods` 里期间名允许重复。
> 但如果同一期间同一项目出现两个不同的值,本包直接拒绝——同一件事给两个数字,没法判断哪个对。
也支持单个文件里横向铺多期:`项目 | 2026-09 | 2026-08 | ...`。
(判定条件:项目列之后至少 2 列,且列名都含数字。)
### 必须提供利润表才能算的指标
只给资产负债表时,营运和盈利类指标会全部标「不可计算」——
不是本包偷懒,是收入、成本、净利润这些项目根本不在表里。
**要算 O 类和 P 类,请把利润表一并带上。**
## 输出四件套
| 文件 | 内容 |
|---|---|
| `rt_主表.csv` | 编号 / 类别 / 指标 / 本期值 / 上期值 / 单位 / 计算口径 / 备注 |
| `rt_异常表.csv` | 所有不可计算项 + 需人工复核项(带编号、风险等级) |
| `rt_校验表.csv` | 期间数、数据来源、周转率口径、同业基准、人工复核声明 |
| `fin-log.jsonl` | 处理日志(追加) |
另有 `rt_同业对照.csv`(仅当传了 `--industry` 时生成)。
## 用法
```bash
PY="<python 3.8+ 路径>" # 纯标准库
"$PY" <skill目录>/scripts/ratio.py 资产负债表.xlsx 上期资产负债表.xlsx 利润表.xlsx 上期利润表.xlsx \
--periods 2026-09,2026-08,2026-09,2026-08 --execute
```
单期(只要本期):
```bash
"$PY" ratio.py 资产负债表.xlsx 利润表.xlsx --execute
```
带同业基准占位值:
```bash
"$PY" ratio.py 本期.xlsx 上期.xlsx --industry '{"流动比率":2.0,"毛利率":35}' --execute
```
**默认不写盘**——不加 `--execute` 只打印预览(前 20 行),确认无误再真跑。
## 真实输出
```
方案:rt_本期_2026-09.csv→2026-09(金额列「期末余额」,32 行) | ...
期间 4 个:2026-09、2026-08、2026-09、2026-08
--- 指标结果(共 18 项)---
S01 偿债 流动比率 1.85 | 1.85
S02 偿债 速动比率 1.61 | 1.59
S03 偿债 现金比率 112.90% | 125.45%
S04 偿债 资产负债率 47.92% | 53.24%
S05 偿债 权益乘数 1.92 | 1.82
O01 营运 应收账款周转率 1.92 | 1.54
O02 营运 存货周转率 2.00 | 1.87
P01 盈利 毛利率 40.00% | 30.00%
P03 盈利 净利率 -6.50% | 3.75%
G01 成长 营业收入增长率 25.00% | 不计
--- 异常表 ---
[中] S01 流动比率 本期不可计算:分母为 0
[中] S02 速动比率 本期不可计算:速动资产为负(-50000.00),存货可能重复计入流动资产
```
## 三条口径说明(容易踩坑)
1. **周转率**:有两期时,分母用「(期初+期末)/2」的平均余额;只有一期时用期末余额,
并在「备注」列注明「只有一期,分母用期末余额(会高估周转)」。
2. **毛利率**:只有收入没有成本也会让毛利虚高,所以营业成本缺失时本包按**高**风险标记。
3. **成长指标**:只有一期时写「—(只有一期,无趋势)」并记低风险提示,不编造增长率。
## 值异常时的告警
| 情况 | 风险 | 说明 |
|---|---|---|
| 流动比率 < 1 | 高 | 流动资产盖不住流动负债 |
| 速动比率 < 0.5 | 高 | 短期偿付压力很大 |
| 资产负债率 > 70% | 高 | 杠杆偏高(不同行业差异大,需结合判断) |
| 速动资产为负 | 高 | 存货可能重复计入流动资产 |
| 营业收入为负 | 高 | 通常是红字冲销,先查来源 |
## 安全与边界(拒绝权)
- **源文件零改动**:输出进 `_out/`,原表不动
- **默认预览**:不加 `--execute` 不写盘
- **同业基准一律是占位值**:不引用任何外部数据,也不假装是实测同业数据
- **不代替判断**:指标只是参考,行业差异极大,别拿一个比率下结论
## 人工复核(必读)
- 资产负债率没有绝对好坏——零售企业高、重资产企业低,都要结合行业看
- ROE 用期末净资产算,跟用平均净资产算会有差异;想看平均口径要提供多期
- 周转率的分母口径(期末 / 平均)直接影响结果,看表时先确认「计算口径」列
- 同业基准是占位值,不是实测,别拿它做决策依据
## 相邻路线转交
| 用户要做的事 | 转交给 |
|---|---|
| 三大表怎么出 | `financial-statement-build` |
| 报表之间勾稽对不对 | `statement-cross-check` |
| 月度经营分析会材料 | `monthly-mgmt-report` |
| 多张表合并成一个大表 | `fin-table-merge` |
## 可直接复制的说法
```text
按偿债、营运、盈利、成长四类把财务指标算一遍,18 项。
本期和上期的报表都给我,周转率有两期就用平均余额。
分母是 0、报表里没有这一行、或者上期数据没给的,
直接标「不可计算」并写清原因,不要给我一个替代值凑数。
同业基准如果没有实测数据,就填占位值并标明是占位。
```
## 做完怎么算完成
- [ ] 18 项指标的「计算口径」列已逐条确认与本公司习惯一致
- [ ] 所有「不可计算」项都能在原报表里找到对应原因(缺行 / 为 0)
- [ ] 高风险项(流动比率 < 1、速动资产为负、营收为负)已逐条追查
- [ ] 需要 O 类或 P 类指标的,确认已带上利润表
---
本 Skill 采用 BUSL-1.1 许可(源码可见,可自由使用)。
版权所有 © 2026 律令科技(深圳)有限公司(@lexord-technology)。
本技能由律令科技(深圳)有限公司开发,**财友云(caiyouyun.cn)**发布与展示。
允许个人及企业内部免费使用、复制、修改,包括内部生产环境。
未经书面许可,不得将本 Skill 或其修改版作为商业服务对外销售、转售或提供托管服务。
各版本发布之日起 4 年后自动转为 Apache License 2.0。详见随包 `LICENSE.md`。从科目余额表生成资产负债表/利润表/现金流量表(直接法+间接法)
30+ 条勾稽规则(资产=负债+权益、现金流量净额=货币资金变动等)
增值税/附加/印花税申报表数值填列与填表指引
多公司/多期报表合并成一个工作簿,含目录页
口径字典驱动,本期/预算/上期/同期同表比较,环比同比与预算达成率,超阈值变化单列
按发票号码+代码+金额+日期组合查重,拦住重复报销与重复入账
进销项发票台账,按月/客户/税率汇总,导出 CSV
多银行 CSV/Excel 流水归一化成统一字段与方向标记
流水与账面按金额+日期窗口匹配,输出已勾对/单边与余额调节表
从业务单据表按科目映射批量生成凭证草稿,借贷平衡预检
增值税/附加/个税/印花税/所得税预缴,附公式与政策依据
金额大写、含税不含税互算、价税分离、尾差分摊、百分比反算
SKILL.md 为准。