2026-10-09 · 喵窝资源铺
钱账系列的个税侧:每年12月确认专项附加扣除,HR 导入工资表时最常出的问题不是「算错税」,而是扣除项本身不合规——房贷和租金二选一的忘了选、非独生子女按独生子女的顶格报、职业资格继续教育没按取证当年一次性 3600 报。这版脚本把申报扣除逐人×工资表核对一遍,代码实跑验证,真实输出贴在下面。
测试数据:7 名员工,故意埋 6 处陷阱——李娜房贷 1000 和租金 1500 同时申报;王强 2 个子女报 6000(上限 4000);赵敏非独生子女赡养报 3000(分摊上限 1500);陈晨职业资格继续教育报 1200(应整年 3600);孙悦大病医疗报 8000(未超 15000 起扣线);刘洋扣除没问题但代扣个税 3000(按合法扣除估算约 1990)。跑完:
张伟 → 正常 李娜 → 房贷利息1000与住房租金1500同时申报,二选一 王强 → 子女教育6000超上限(2个子女×2000=4000) 赵敏 → 非独生子女赡养3000超分摊上限1500 陈晨 → 职业资格继续教育应取整年3600,实际1200;代扣个税150与按合法扣除估算290.00明显偏离(>10%) 孙悦 → 大病医疗8000未超起扣线15000,不应申报 刘洋 → 代扣个税3000与按合法扣除估算1990.00明显偏离(>10%),疑扣除或税率档用错 核对完成: 7 人, 异常 6 人
逐项验收:重复享受、超个数上限、赡养分摊超限、继续教育口径、大病起扣线、个税偏离全对出;对照张伟零误报。边界:空表/缺列明确报错退出(列出缺哪些列);幂等:同输入连跑两次输出一致。
| 项目 | 上限/规则 |
|---|---|
| 住房贷款利息 vs 住房租金 | 不得同时享受,二选一(分别 1000/1500 封顶示例) |
| 子女教育 / 3岁以下婴幼儿照护 | 每个 2000/月,超人数即超报 |
| 赡养老人 | 独生 3000/月;非独生分摊、每人 ≤1500/月——没标是否独生就没法判,单列提醒 |
| 继续教育 | 学历 400/月;职业资格取证当年一次性 3600,两者学历期间不能并行 |
| 大病医疗 | 年自付超 15000 的部分、限 80000,汇算清缴扣——月表报个低于 15000 的数直接是错的 |
| 代扣个税交叉校验 | 按剔除违规申报后的合法扣除估算月度税额,偏离 >10% 报疑点 |
先 pip install openpyxl。输入列:姓名/月工资/住房贷款利息/住房租金/子女数/子女教育/婴幼儿数/婴幼儿照护/是否独生子女/赡养老人/学历继续教育/职业资格继续教育/大病医疗/工资表代扣个税。运行:
python tax_deduct_check.py 扣除申报.xlsx 核对结果.xlsx
输出 xlsx 一张表:姓名、扣除合计、逐人异常结论,直接可读。
第一版里张伟完全合规,却被报「代扣个税与估算偏离」——因为校验直接用申报扣除算税,而测试数据里给他的代扣税额是按旧口径预扣的。真正的坑是:估算基准必须先剔除违规申报(房贷租金冲突取房贷、超限取上限、违规项取 0),否则合规的人会被违规邻居的口径连累误报。另外阈值不能拍 1 元——预扣(累计预扣法)和按月简算天然有小幅差异,5-10% 的容差才合理,差异超阈值标「疑点」让人复核,别让脚本替税法拍板。
工资侧:社保申报基数×工资表合规核对、加班表×工资表工时对账、时间列清洗后核工资;收入侧:合同回款×银行流水催收对账、借款×报销冲抵对账。