disability-fund-check-freelisted
Install: claude install-skill chenqg618/compliance-skills
# 残疾人就业保障金申报核对(免费版)
> **完全本地运行**:引擎已经打包在本技能里(`engine/` 目录)。
> 不联网、不需要 API Key、**没有调用次数上限**。
## 什么时候用
**谁会在什么时候用**:财务、税务岗在**每年(部分地区按月或按季)申报缴纳残保金之前**,
必须把这张申报表核一遍才敢提交 —— 算错就是多缴或漏缴,漏缴还有滞纳金。
**为什么容易错**:这张表是三条串行算式,再叠上免征与分档减缴的条件:
- 应安排残疾人就业人数 = 上年在职职工人数 × 规定比例
- 应缴金额 = (应安排人数 − 实际安排人数)× 上年在职职工年平均工资(**负数按 0**)
- 已缴金额与应缴金额的差异(多缴还是少缴)
第一条错,整行的应缴金额都跟着错;安排人数达标时差额为负,要按 0 填而不是填负数。
纯算术,但人眼一多就错。
**不与已有能力重复**:本工具核的是**残保金申报表本身的口径与算术**;
发票合规、工资个税、社保公积金归集都不是它做的事(见下面的边界)。
## 这个免费版查什么
1. 应安排残疾人就业人数勾稽(上年在职职工人数 × 规定比例)
2. 应缴金额勾稽((表内应安排人数 − 实际安排人数)× 上年在职职工年平均工资,负数按 0)
3. 已缴金额与应缴金额差异勾稽(多缴 / 少缴)
4. 合计行逐列复核(每一列的合计是否等于各明细行之和)
5. 同一所属期重复行检测
6. 关键字段空缺与占位符检测
跑 `node scripts/run.mjs --sample` 会打印本次实际执行的检查项(以引擎的 `CHECKS_*` 导出为准)。
每条结论都带**原文行号与出处**,可被第三方用同一口径复算;
材料不足时**不给结论**,会明确列出还缺什么。
## 口径(算术依据,第三方按这个复算)
- 规定比例既认小数也认百分数:不超过 0.2 按小数比例(0.015 等于 1.5%),否则按百分数(1.5 等于 1.5%);
- 应安排人数默认不取整(按比例算出的精确值);各地取整口径不同,可在入参里用 should_rounding 指定
四舍五入到人(round)、向上取整到人(ceil)、向下取整到人(floor);
- 应缴金额用**表内已填的应安排人数**当乘数(应安排人数本身由第 1 项单独复算),负数按 0;
- 已缴与应缴按表内「应缴金额」列比较(减免后的实缴口径属于完整档的事)。
## 怎么用
```bash
node scripts/run.mjs --sample # 先看样例
node scripts/run.mjs --input templates/sample.json # 跑自己的材料
```
入参是 JSON,`text` 里放从 Excel 复制出来的**表头 + 明细**(Tab 分隔最稳)。
需要的表头:所属期、上年在职职工人数、规定比例、上年在职职工年平均工资、
应安排残疾人就业人数、实际安排残疾人就业人数、应缴金额、已缴金额。
可选表头:减免金额、持证残疾人数、一年以上劳动合同人数、工资总额。
## 常见错法(这张表里真的会有人这么填)
1. **上年在职职工人数填成期末在册人数**。口径是**上年的年平均人数**;填期末数会让人数、应安排人数、应缴金额一路偏。
2. **年平均工资用当年数据或月工资乘 12**。要的是**上年在职职工年平均工资**,与在职人数、工资