工资表发放前核对(付费版)
> 一句话:发薪前把工资表算一遍,每条结论都带行号与原文,可被第三方复算。
> 按次计费:单次 ¥0.99,在对话内完成支付后立即返回结果。
为什么值得
发薪前要在一张几十上百行的工资表上确认几件事,全是算术,却总靠人眼扫 Excel。
单次 ¥0.99 换一次全表复核 —— 算错就要重发、员工马上来问、个税申报还会对不上。
什么时候用
- 每月发薪前,想确认每个人的实发是不是算对了(应发 − 社保 − 公积金 − 个税 − 其他扣款)
- 想知道合计行是不是真的等于各列之和(合计错,银行代发总额就错)
- 担心同一个人出现两行(重复发薪)
- 想知道有没有实发空缺或还留着
【填写】、TBD的行
查什么(8 项)
| # | 检查项 |
|---|---|
| 1 | 逐人算术:实发工资 = 应发工资 − 各项扣款之和 |
| 2 | 合计行复核:合计行的每一列是否等于该列各人之和 |
| 3 | 重复人员检测:同一姓名出现两行以上 |
| 4 | 空白与占位符:实发工资空缺、【填写】/TBD 残留 |
| 5 | 应发工资 = 各项加项之和(基本工资 + 绩效 + 补贴…) |
| 6 | 个税校验:按累计预扣税率表复核「税额 = 累计应纳税所得额 × 税率 − 速算扣除数」 |
| 7 | 实发合计与声明的银行代发总额是否一致 |
| 8 | 扣款为负、实发为负等异常值提示 |
按表头认列,不按列的位置 —— 各家的工资表列序都不一样,按位置认一定会认错。
金额写法做归一化(10,000.00、¥1,050.00、(100) 都能认)。
怎么用
node scripts/payroll-check-paid.mjs --sample
node scripts/payroll-check-paid.mjs --json --input my-payroll.json
node scripts/payroll-check-paid.mjs --json --input my-payroll.json --json
入参:把工资表连表头一起贴进来(从 Excel 直接复制即可,Tab 分隔最稳)。
退出码
| 码 | 含义 |
|---|---|
| 0 | 已执行检查 |
| 1 | 没给入参 |
| 3 | 材料不足 —— 此时不给结论(认不出表头也不硬猜列) |
| 4 | 入参文件读不到或无法解析 |
| 9 | 未预期错误 |
关于付款(本技能不碰钱)
- 首次调用返回 HTTP 402 与一份
Payment-Needed账单(单次 ¥0.99); - 付款成功后 alipay-bot 会自动携凭证重发同一请求并取回结果。
边界(请务必知道)
- 只做算术核对,不判断某个人的工资该发多少 —— 那是劳动合同与公司制度的事;
- 不给税务意见,不判断该不该享受某项个税专项附加扣除;
- 不核对社保/公积金基数是否符合当地政策;
- 不读 .xlsx:需要你先从 Excel 复制成文本贴进来;
- 「没报问题」不等于「没有问题」:超出上述 8 项的检查不执行;
- 材料不足或认不出表头时不给结论,也不会用默认值编一个「没问题」出来;
- 不联网、不外发材料、不调用任何模型。
输出示例
[P0] 实发工资算错
王五:应发 8000 − 各项扣款合计 1800 = 6200,但表里写的是 6180(差 -20)。
建议:实发工资算错会直接发错钱;请核对该行的扣款项,或确认是否还有没列出来的扣款。
[P0] 合计行算错
合计行的「实发工资」写的是 28064,但各人之和是 28074(差 -10)。