分析 P1 已上线 L0

费用报销汇总

按人部门类别汇总报销金额与笔数并超阈值标出,缺金额或缺维度的行单列,合计必须守恒

技能 slugexpense-summary
所属栏目分析 成本 / 预算 / 经营
交付阶段P1 P1 在建 · 形成数据-票证-记账-报表-资金-分析-底座的完整闭环
版权© 2026 律令科技(深圳)有限公司开发 · 财友云(caiyouyun.cn)发布
这个包已上线。复制到本地即可离线运行;正文与用法以下方随包 SKILL.md 为准。

技能正文(随包 SKILL.md)

> **本地运行,零网络、免 API Key、数据不出电脑。**
> 四项诚实承诺:① 算不出就说算不出,绝不编造数字;② 高危动作强制人工确认;③ 幂等断点,绝不重复副作用;④ 全程留痕可审计。

# 费用报销汇总

报销表汇总看着简单,做错却很隐蔽:某行金额没填、某行忘了填部门,
如果这行「照常加进合计」,三个维度加总会比总账多出一截;
如果这行被悄悄丢掉,合计又会对不上账面。

本包的原则:**缺一样就整行单列,不参与任何维度合计,并在异常表里写明缺的是什么。**
这样「输入 = 主表 + 异常」永远守恒,合计对不上时不用猜是哪一行的问题。

## 输入 / 输出

### 输入:1 个报销明细表(.xlsx / .csv)

| 列 | 必须 | 说明 |
|---|---|---|
| 报销金额 | **必须** | 缺失 / 不是数字 → 单列;≤ 0 → 单列 |
| 员工(报销人) | **必须** | 缺失 → 无法归属到「按员工」维度,整行单列 |
| 部门 | **必须** | 缺失 → 无法归属到「按部门」维度,整行单列 |
| 费用类型(费用类别) | **必须** | 缺失 → 无法归属到「按类别」维度,整行单列 |
| 报销单号 | 可选 | 只是让异常表更好查 |

### 输出:四件套(进 `_out/`,源文件一个字节都不动)

| 文件 | 内容 |
|---|---|
| `exp_主表.csv` | 三个维度分别一行(按员工 / 按部门 / 按费用类别):金额、笔数、金额占比、笔数占比、单笔均值、超阈值标志 |
| `exp_异常表.csv` | 被排除的行:缺什么、金额多少、风险等级、原始行号 |
| `exp_校验表.csv` | 判定口径、阈值、笔数与金额守恒、各类排除行数 |
| `fin-log.jsonl` | 处理日志(追加) |

## 用法

```bash
PY="<python 3.8+ 路径>"   # 纯标准库,无需 pip install
"$PY" <skill目录>/scripts/expense_sum.py 报销明细.xlsx --execute
```

常用参数:

```bash
# 改阈值:金额超 5 万、笔数超 20 笔即标出
"$PY" expense_sum.py 报销明细.xlsx --alert-amount 50000 --alert-count 20 --execute

# 指定输出目录 + 记录操作人
"$PY" expense_sum.py 报销明细.xlsx --out-dir _out --operator 张三 --execute

# 先预览、确认无误再落盘
"$PY" expense_sum.py 报销明细.xlsx
```

**默认不写盘**——不加 `--execute` 只打印预览。

## 真实输出样例

实测(10 笔报销,阈值 2 万元 / 10 笔):

```
方案:exp_报销明细_好表.xlsx(10 行数据,10 列)

--- 汇总结果(主表,共 16 行)---
  维度       维度值                    报销金额     笔数       金额占比       笔数占比         单笔均值 超阈值标志
  按员工      吴九                  6800.00      1      7.05%     10.00%      6800.00 正常
  按员工      周八                  2400.00      1      2.49%     10.00%      2400.00 正常
  按员工      孙七                  3000.00      1      3.11%     10.00%      3000.00 正常
  按员工      张三                 27200.00      2     28.19%     20.00%     13600.00 金额超 20000
  按员工      李四                 41600.00      2     43.11%     20.00%     20800.00 金额超 20000
  按员工      王五                  5200.00      1      5.39%     10.00%      5200.00 正常
  按员工      赵六                  8800.00      1      9.12%     10.00%      8800.00 正常
  按员工      郑十                  1500.00      1      1.55%     10.00%      1500.00 正常
  按部门      技术部                11800.00      2     12.23%     20.00%      5900.00 正常
  按部门      财务部                34000.00      3     35.23%     30.00%     11333.33 金额超 20000
  按部门      销售部                50700.00      5     52.54%     50.00%     10140.00 金额超 20000
  按费用类别    办公                 32800.00      2     33.99%     20.00%     16400.00 金额超 20000
  按费用类别    培训                  3000.00      1      3.11%     10.00%      3000.00 正常
  按费用类别    差旅                 12200.00      3     12.64%     30.00%      4066.67 正常
  按费用类别    招待                 39700.00      3     41.14%     30.00%     13233.33 金额超 20000
  按费用类别    设备                  8800.00      1      9.12%     10.00%      8800.00 正常

  合计:有效 10 笔 / 96500.00 元
```

异常路径实测(缺金额 / 负金额 / 缺维度):

```
--- 异常表(5 条,不参与合计)---
  [高] 行2  BX101      钱一         报销金额缺失或不是数字,本行不参与任何合计
  [中] 行3  BX102      孙七         部门缺失,无法归属到对应维度,本行不参与任何合计
  [中] 行4  BX103      周八         费用类别缺失,无法归属到对应维度,本行不参与任何合计
  [高] 行5  BX104                 报销金额非正(-3000.00):疑似未填写或红字冲销,本行不参与任何合计;员工、部门、费用类别缺失,无法归属到对应维度,本行不参与任何合计
  [中] 行6  BX105      吴九         报销金额非正(0.00):疑似未填写或红字冲销,本行不参与任何合计
```

校验表的守恒行:

```
守恒断言(输入 = 主表 + 异常),10 笔 = 10 笔 + 0 行;金额守恒 96500.00 = 96500.00 + 0.00,差异 0.00
缺金额被排除的行,0 行
```

缺列时直接拒绝,不给半张表:

```
【算不出】表里找不到 「员工」、「部门」、「费用类别」 列,无法汇总
建议:补上对应列或改表头后重跑
```

## 拒绝权:什么情况下拒绝执行

| 情况 | 本包做法 |
|---|---|
| 没有「报销金额」列 | 拒绝:算不出任何合计 |
| 没有「员工 / 部门 / 费用类别」列 | 拒绝:无法归属维度,汇总口径不成立 |
| 某行金额缺失或不是数字 | 整行单列入异常表,不参与合计 |
| 某行金额为 0 或负 | 整行单列入异常表(疑似未填 / 红字冲销) |
| 某行缺员工 / 部门 / 费用类别 | 整行单列入异常表,不进任何维度 |
| 输入金额 ≠ 主表 + 异常(差 > 0.01 元) | 拒绝输出并打印差异 |
| 文件不存在 / 表为空 | 拒绝并提示 |

**本包不会用「0」代替缺失金额,也不会把维度缺失的行硬塞进某一类里。**

## 关键设计

1. **维度缺失 = 整行排除**。有人可能想「部门空着就归到『未分类』」,
   但那样各维度合计就无法互相印证了。本包选择整行单列,守恒才有意义。
2. **三个维度别重复求和**。同一笔钱同时属于「员工 / 部门 / 类别」三个维度,
   三个维度各自之和都等于总金额;把三个维度加在一起会变成三倍。
3. **阈值只标不改**。金额超阈值、笔数超阈值只在「超阈值标志」列打标,
   不删数、不改数,阈值本身写进校验表备查。
4. **占比的分母是有效金额 / 有效笔数**。分母为 0 时写「占比不可计算」,
   不输出 0% 冒充结果。
5. **笔数与金额两套守恒都查**:输入行数 = 有效笔数 + 异常行数,
   输入金额 = 主表金额 + 异常表金额,差 0.01 元以内。

## 人工复核(必读)

- 「报销金额」是**实报金额**还是**申请金额**?本包按列名为准,口径不一致会直接影响占比
- 金额为 0 的行被排除了。如果贵司确实存在「0 元报销」业务(如纯跑腿),
  请在明细里单独标注,再考虑放宽本包的排除规则
- 负数金额通常是红字冲销,要跟被冲销的原始单一起看,别只盯这一行
- 超阈值只是「值得看一眼」,不等于「有问题」;差旅、招待、设备的行业水平差异极大
- 员工重名(同名不同人)会让「按员工」汇总失真,必要时先用工号做维度

## 相邻路线转交

| 用户要做的事 | 转交给 |
|---|---|
| 报销单合规审核(超标 / 缺票 / 重复) | `expense-reimburse-check` |
| 费用标准与超标判定 | `expense-reimburse-check` |
| 部门费用排名与人均降本 | `dept-cost-analysis` |
| 预算 vs 实际差异 | `budget-execution` |
| 管理层一页摘要 | `exec-summary` |

## 可直接复制的说法

```text
把这张报销明细按员工、部门、费用类别三个维度汇总一下,
金额和笔数都要,占比也给我,超过 2 万或者超过 10 笔的标出来。
金额空着、填成 0 或者负数的行,单独列一张异常表,不要参与合计。
员工、部门、费用类别任何一个字段空着的行也单独列出来,
我要的是「输入 = 主表 + 异常」能对得上,合计不能多也不能少。
分母为 0 的时候写「不可计算」,不要给我 0%。
```

## 做完怎么算完成

- [ ] 主表三个维度的合计已互相核对,都等于有效金额合计
- [ ] 校验表「守恒断言」的笔数与金额差异都是 0
- [ ] 异常表里每一行都被人工追过:是漏填、还是红字冲销
- [ ] 缺金额被排除的行数 + 金额非正的行数 + 维度缺失的行数 = 异常表行数
- [ ] 阈值已按本公司实际口径调整,并写进校验表
- [ ] 已加 `--execute` 落盘到 `_out/`,原表未改动

---

本 Skill 采用 BUSL-1.1 许可(源码可见,可自由使用)。

版权所有 © 2026 律令科技(深圳)有限公司(@lexord-technology)。
本技能由律令科技(深圳)有限公司开发,**财友云(caiyouyun.cn)**发布与展示。

允许个人及企业内部免费使用、复制、修改,包括内部生产环境。
未经书面许可,不得将本 Skill 或其修改版作为商业服务对外销售、转售或提供托管服务。
各版本发布之日起 4 年后自动转为 Apache License 2.0。详见随包 `LICENSE.md`。

相邻技能

分析 规划中P1 在建 已上线

成本归集与分摊

按工时/产量/面积/收入等动因分摊,输出分摊过程表

L0 · 成本 / 预算 / 经营
分析 规划中P1 在建 已上线

多维度毛利分析

按产品/客户/区域/月份拆解毛利与贡献边际

L0 · 成本 / 预算 / 经营
分析 规划中P1 在建 已上线

应收账龄与坏账准备

账龄分段、坏账计提测算、客户风险排序

L0 · 成本 / 预算 / 经营
分析 规划中P2 长尾 已上线

预算执行差异分析

预算 vs 实际的额差率差与预警清单

L0 · 成本 / 预算 / 经营
分析 规划中P2 长尾 已上线

本量利与盈亏平衡

盈亏平衡点、安全边际、敏感性与情景测算

L0 · 成本 / 预算 / 经营
分析 规划中P2 长尾 已上线

经营分析素材生成

月度经营分析的数字、结论与图表数据源一次产出

L0 · 成本 / 预算 / 经营
分析 规划中P1 在建 已上线

进销存差异检查

理论期末=期初+入库-出库,与系统/盘点/账面三方比对,负库存与异常单价优先,按影响金额排序

L0 · 成本 / 预算 / 经营
分析 规划中P2 长尾 已上线

部门费用与降本分析

按部门/项目/供应商汇总增长贡献,区分一次性与持续性费用,识别单价上涨/重复采购/供应商集中

L0 · 成本 / 预算 / 经营
分析 规划中P2 长尾 已上线

管理层一页摘要

一句话结论+5 个核心指标+3 个关键变化+风险影响+待决策事项,事实/假设/建议三段分开,每个结论带数据依据

L0 · 成本 / 预算 / 经营
分析 规划中P1 在建 已上线

客户盈利分析

按客户算收入成本毛利毛利率,亏损客户与成本缺失单列标高风险,不按 0 成本算毛利

L0 · 成本 / 预算 / 经营
票证 规划中P0 计划 已上线

发票查重

按发票号码+代码+金额+日期组合查重,拦住重复报销与重复入账

L0 · 发票 / 票据
票证 规划中P0 计划 已上线

发票台账

进销项发票台账,按月/客户/税率汇总,导出 CSV

L0 · 发票 / 票据
本页内容由本地构建生成于 2026-09-27。技能正文以随包 SKILL.md 为准。