分析 P2 已上线 L0

部门费用与降本分析

部门费用排名、人均费用、费用率与增速预警,人均分母缺失就写不可计算,绝不硬算

技能 slugdept-cost-analysis
所属栏目分析 成本 / 预算 / 经营
交付阶段P2 P2 长尾 · 长尾与进阶分析,按 P0/P1 数据裁剪
版权© 2026 律令科技(深圳)有限公司开发 · 财友云(caiyouyun.cn)发布
这个包已上线。复制到本地即可离线运行;正文与用法以下方随包 SKILL.md 为准。

技能正文(随包 SKILL.md)

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

# 部门费用与降本分析

部门费用排名谁都会算,真正容易错的是**分母**:人数取的是不是本期的人?上期数据是不是和本期混在一起累加了?
一个人都没有的部门,人均费用到底是 0 还是算不出来?

本包把口径定死:

- **人数与收入只取「本期」**——上期行只用于算增长率,绝不重复计入人数与收入
- **人均费用 = 部门费用合计 / 部门人数**:人数缺失写「—」并标不可计算,人数为 0 写「不可计算:部门人数为 0」,绝不除出 0 或 Infinity
- **费用率 = 部门费用合计 / 部门收入**:收入缺失写「—」,收入为 0 写「不可计算:部门收入为 0」
- **增长率需要两个期间**:只有一个期间标「无法校验」,上期费用为 0 标「不可计算:…增长率无定义」
- **增长率 > 50% 记高风险,> 30% 记中风险**,并额外输出一份 `dc_降本清单.csv` 直接可用于降本讨论

## 输入:一张部门费用明细表

| 列名 | 必填 | 说明 |
|---|---|---|
| 部门 / 责任部门 / 成本中心 | 是 | 按部门归集 |
| 费用项目 / 费用类别 / 科目名称 | 是 | 这一笔是什么费用 |
| 发生额 / 金额 / 费用金额 | 是 | 这一笔多少钱 |
| 期间 / 月份 / 会计期间 / 年月 | 否 | 形如 `2026-09`。缺这一列时无法算增长率 |
| 人数 / 部门人数 / 在职人数 | 否 | 算人均费用用 |
| 收入 / 部门收入 / 营业收入 | 否 | 算费用率用 |

> 部门行允许重复——同一部门一个月的多个费用科目就是多行,本包按部门聚合。
> 人数与收入也允许多行,**只累加「本期」**行;上期行只进增长率的分母计算,不进人数 / 收入。

## 输出四件套

| 文件 | 内容 |
|---|---|
| `dc_主表.csv` | 部门 / 费用合计 / 笔数 / 人数 / 人均费用 / 费用率 / 增长率 / 增速备注 |
| `dc_异常表.csv` | 增速过快、人均或费用率不可计算、金额缺失或为负(带风险等级) |
| `dc_校验表.csv` | 本期期间、可比上期、费用合计、口径说明、剔除行数 |
| `dc_降本清单.csv` | 可直接用于降本讨论的部门清单(按费用合计降序) |
| `fin-log.jsonl` | 处理日志(追加) |

## 用法

```bash
PY="<python 3.8+ 路径>"   # 纯标准库
"$PY" <skill目录>/scripts/dept_cost.py 部门费用表.xlsx --execute
```

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

```bash
"$PY" dept_cost.py 部门费用表.xlsx --out-dir _out --operator 张三 --execute
```

## 真实输出

```
已生成 dc_降本清单.csv(5 个部门)
方案:部门费用表.xlsx(21 行,5 个部门,本期 = 2026-09)
  部门                         费用合计    笔数       人数         人均费用        费用率      环比/同比
  技术部                   508000.00     2     18.0     28222.22     56.44%     20.95%
  销售部                   374000.00     3     12.0     31166.67     22.26%     36.50%
  财务部                   224000.00     2      6.0     37333.33     56.00%      5.66%
  客服部                   152000.00     2      5.0     30400.00     47.50%      5.56%
  行政部                   132000.00     2      4.0     33000.00          —    106.25%
  (全部部门合计)             1390000.00    11     45.0     30888.89          —          —

--- 异常表(2 条)---
  [中] 销售部        费用比上期增长 36.50%,增速偏快(+100000.00 元),建议关注
  [高] 行政部        不可计算:部门收入为 0;费用比上期增长 106.25%,增长过快(+68000.00 元),建议列为降本重点
```

失败路径(实测,全部不崩溃、给假数,而是标「不可计算 / 无法校验」并进异常表):

```
--- 坏_部门费用_单期.xlsx(表里只有一个期间)---
  [中] 技术部   无法校验:表里只有一个期间(2026-09),没有可比对的上期
  [中] 销售部   无法校验:表里只有一个期间(2026-09),没有可比对的上期
  ...(每个部门各一条)

--- 坏_部门费用_人数为0.xlsx ---
  生产部                   200000.00     1      0.0            —          —          —
  (全部部门合计)             200000.00     1        —            —          —          —
  → [中] 生产部  不可计算:部门人数为 0;不可计算:表内没有该部门的收入,无法算费用率;无法校验:表里只有一个期间((未标期间)),没有可比对的上期
--- 坏_部门费用_收入为0.xlsx ---
  行政部                    54000.00     1        —            —          —          —
  (全部部门合计)               54000.00     1        —            —          —          —
  → [中] 行政部  不可计算:表内没有该部门的人数,无法算人均费用;不可计算:部门收入为 0;无法校验:表里只有一个期间((未标期间)),没有可比对的上期
--- 坏_部门费用_金额为负.xlsx ---
  [高] 销售部   金额为负(-30000.00),疑似红字冲销未处理,该行已剔除,不参与费用排名
--- 坏_部门费用_金额缺失.xlsx ---
  [高] 销售部   金额为缺失或无法识别为数字,该行未出表
--- 坏_部门费用_空表.xlsx ---
【算不出】表里没有任何一行取得到部门与有效金额,出不了部门费用表
建议:确认部门列与金额列,或先跑 fin-table-clean 清理空行
本包不会给一个看似合理的替代数字 —— 财税场景算错比不做更危险。
```

## 关键设计(容易踩的坑)

1. **人数 / 收入只算本期**。表中同时存在 2026-08 与 2026-09 行时,
   只有 `r["period"] == cur_p` 的行参与 `agg` 的人数与收入累加;上期行只喂给 `prev` 用于增长率。
   否则「总人数」会变成两期之和,人均费用直接腰斩。
2. **期间按日期排序取最新为本期,不是按字符串排序**。用 `YYYY-MM` 正则解析后按元组排序,
   `2026-10` 不会排在 `2026-9` 前面。
3. **三态判定,别把「无法校验」当「通过」**:
   - `可计算` → 出数
   - `不可计算:…` → 分母缺失或为 0(人数 / 收入 / 上期额)
   - `无法校验:…` → 只有一个期间,无比对对象
4. **负数行剔除而不是取绝对值**。红字冲销未处理时取绝对值会把冲销当成新增费用,导致排名失真。
5. **人均 / 费用率是部门级口径**,不是全公司平均;同一部门多行人数只累加一次(本期)。

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

| 情况 | 处理 |
|---|---|
| 表里没有任何一行取得到部门与有效金额 | 拒绝输出:`【算不出】表里没有任何一行取得到部门与有效金额,出不了部门费用表` |
| 缺少必须的列(部门 / 费用金额) | 拒绝输出并列出可识别的别名 |
| 文件路径不存在 | 拒绝输出:`【算不出】找不到文件` |
| 单行人数为 0 | 该部门人均费用标「不可计算:部门人数为 0」,不拒绝整表 |
| 单行金额为负 / 金额缺失 | 该行进异常表,写明已剔除 |
| 只有一个期间 | 增长率标「无法校验」,不拒绝整表 |

> 注意区分:**空表拒绝整包**,单行坏数据只影响该行 / 该部门。

## 人工复核(必读)

- 「人数」取的是在职人数还是参与分摊的人数,直接决定人均费用高低,看表先确认口径
- 行政部的「费用率」为 `—` 通常是该部门不产生收入(职能部门),不是算不出来,属正常现象
- 增长率受预算下达节奏影响:季节性费用(如年终奖、审计费)会导致单月暴涨,需结合业务判断
- 费用合计包含折旧摊销等非现金项目,「降本」时不能直接按此数砍
- 本包只做部门维度的费用观测,不重复分摊共同成本;共同成本分摊请用 `cost-allocation`
- 分析结果不改动任何凭证,降本结论最终由对应财务岗位确认

## 相邻路线转交

| 用户要做的事 | 转交给 |
|---|---|
| 费用怎么分摊到部门 | `cost-allocation` |
| 按客户 / 产品看毛利,找亏损源头 | `gross-margin-analysis` |
| 超预算科目怎么压 | `budget-execution` |
| 费用报销的逐笔超阈值明细 | `expense-summary` |
| 降本结论写成管理层摘要 | `exec-summary` |

## 可直接复制的说法

```text
按部门出一下费用分析:费用合计从高到低排名,同时给人均费用和费用率。
人数缺失或为 0 的部门,人均费用直接写「不可计算:部门人数为 0」,不要算成 0。
部门收入为 0 的,费用率也写不可计算,不要除出无穷大。
上期为 0 的,增长率写不可计算;只有一个期间的,写无法校验,不要当成 0 增长。
费用比上期增长超过 50% 的标高风险,超过 30% 的标中风险,我要一份降本清单。
```

## 做完怎么算完成

- [ ] 校验表里的「本期期间」与「可比上期」都符合预期
- [ ] 人数与收入只含本期,没有两期相加
- [ ] 所有「—(不可计算 / 无法校验)」的格子都人工确认过原因
- [ ] 没有出现人数为 0 却被算出人均费用的部门
- [ ] 增长率超过 30% / 50% 的部门都已逐一看过(预算节奏 or 真实上涨)
- [ ] `dc_降本清单.csv` 与 `dc_主表.csv` 的部门口径一致

---

本 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 · 成本 / 预算 / 经营
分析 规划中P1 在建 已上线

进销存差异检查

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

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

管理层一页摘要

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

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

客户盈利分析

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

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

发票查重

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

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

发票台账

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

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