工资条核对助手
员工拿到工资条,逐项反向验算:该扣的扣对没有、该给的给足没有。站在员工视角、事后核对——与在售正向核算类产品的分工线。
与在售产品的分工(2026-09-18 实测划界)
| 在售 | 它做什么 | 本技能差异 |
|---|---|---|
salary-bonus-calc(v1.4.20) |
企业 HR 从考勤正向生成工资条与汇总表 | 本技能是它的下游:员工拿到条子后的反向验算与勾稽核对 |
personal-income-tax-data-operation |
企业申报数据维护 | 本技能面向员工个人,不做申报操作 |
tax-policy-knowledge |
财税政策问答与风险合规 | 本技能只做本条工资条的算术验算 |
salary-analysis |
薪酬结构分析与市场对标 | 本技能逐条金额核对,不做分析 |
使用方式
python3 scripts/slip_check.py demo # 内置示例工资条核对(埋点样本)
python3 scripts/slip_check.py check --input slip.json # 按字段输入出核对报告
python3 scripts/slip_check.py rules # 核对规则与费率口径
check 的输入字段(JSON,缺省字段视为未填写、对应项跳过判定):
{
"title": "2026年8月工资条",
"month": 8,
"items": {"基本工资": 10000, "岗位津贴": 1000, "加班费": 800, "缺勤扣款": -459.77},
"gross_claimed": 11000,
"slip_social": {"养老": 800, "医疗": 200, "失业": 50, "公积金": 1200},
"slip_tax": 300,
"net_claimed": 8949.51,
"social_base_claimed": 10000,
"local_min_wage": 2360,
"cum_gross_prior": 88000,
"cum_social_prior": 22500,
"cum_deduction_prior": 24000,
"cum_tax_prior": 1540,
"hourly_wage": 57.47,
"overtime_hours": 10,
"monthly_wage": 10000,
"absent_days": 1,
"probation": false,
"probation_wage_pct": null,
"rates": null
}
rates 省略时用默认口径(养老 8% / 医疗 2% / 失业 0.5% / 公积金 12%),属地差异提示以当地为准。
规则库(8 条,全部确定性验算)
| 编号 | 核对项 | 口径 | 判定要点 |
|---|---|---|---|
| S01 | 应发勾稽 | 各收入项之和 | 与工资条应发合计逐分核对,差超 1 分列红线 |
| S02 | 实发勾稽 | 应发−五险一金个人−个税 | 与实发合计核对 |
| S03 | 五险一金个人费率 | 基数×费率 | 偏差>1 元列风险;基数低于当地最低工资列风险 |
| S04 | 个税累计预扣重算 | 累计预扣法 | 累计收入−5000×月数−累计三险一金−累计专项附加,按 3%~45% 七档超累重算本月应预扣 |
| S05 | 加班费倍率 | 《劳动法》第44条 | 工作日 1.5 倍 / 休息日 2 倍 / 法定节假日 3 倍 |
| S06 | 最低工资下限 | 属地最低工资 | 剔除加班费后正常应发不得低于当地最低工资,填了才判 |
| S07 | 计薪天数口径 | 21.75 天 | 缺勤扣款=月工资÷21.75×缺勤天数,填了才验算 |
| S08 | 试用期工资 | 《劳动合同法》第20条 | 不低于约定工资 80%,且不低于当地最低工资 |
分级口径:红线=金额勾稽对不上/低于法定下限(必须核实);风险=与重算偏差大(建议核实);提示=需补充信息或留意口径;通过=验算相符。报告内含待确认清单与统一边界声明。
铁律
- 只验算,不算工资——正向核算是
salary-bonus-calc的位子;本技能不替企业做薪资核算。 - 差额必须写清两个数——每条不符结论同时给出重算值与工资条载明值及差额,可复核。
- 属地参数不硬编码判定——费率、最低工资一律参数化,未填写的项只提示不判定。
- 缺数据跳过不猜——字段未填的项如实说明「未填写」,不推算、不臆断。
边界声明
> 只做工资条金额的算术验算与规则核对,不构成税务或法律意见,不替代个税申报操作;争议请向劳动监察或仲裁机构反映。