累计预扣法是怎么算的:为什么下半年到手工资比上半年少
同一个岗位、同样的工资,上半年每月扣 180 元个税,7 月突然变成 600 元,到手工资少了 420 块——这不是公司算错了,也不是税率涨了,而是“累计预扣法”在按年算总账。这篇把 12 个月的推演全过程摆出来,你能拿自己的工资条一步步对上。
一、先对号:哪些人会遇到“越扣越多”
工资薪金现在不用“按月单独计税”了,用的是累计预扣法:每个月都从 1 月 1 日重新算一遍全年累计,减去已经扣过的税,剩下的才是这个月要扣的。所以只要你的累计应纳税所得额跨过了某个税率档,当月税额就会跳一下。
这套算法的依据是《个人所得税法》第十一条——居民个人取得综合所得,按年计算、由扣缴义务人按月或者按次预扣预缴;具体算法写在国家税务总局公告 2018 年第 61 号所附的《个人所得税扣缴申报管理办法(试行)》里。它不是公司自己定的规矩,所以跟财务争执“为什么这个月扣这么多”没有意义,要看的是累计数对不对。
对着下面这张表,先确认你属于哪种情况:
| 你的情况 | 会不会出现“越扣越多” | 原因 |
|---|---|---|
| 工资固定,社保和专项附加都正常申报 | 会,通常在年中某个月跳一次 | 累计所得跨过 36,000 元,从 3% 进 10% 档 |
| 工资固定,但月收入扣完起征点后不足 3,000 元 | 不会 | 全年累计都到不了 36,000 元,一直 3% |
| 年中入职、换工作 | 当年可能反而变少 | 新单位从 0 开始累计,次年汇算大概率要补税 |
| 有年终奖且选择单独计税 | 年终奖那笔不影响月度税额 | 单独计税,不并入当月工资累计 |
| 两处以上同时任职 | 两边都按 6 万/年扣,当年扣少了 | 重复享受减除费用,汇算要合并补税 |
二、算账:月薪 15,000 的 12 个月全过程
小陈在某公司做财务主管,月薪 15,000 元,社保和公积金个人缴纳部分合计 2,000 元,申报了子女教育(1,000 元/月)和赡养老人(1,000 元/月)两项专项附加扣除。
先算每月的应纳税所得额:
这个 6,000 元不直接乘税率,因为它是按月的,而税率表是按年的。累计预扣法的做法是:到第 n 个月,把前面 n 个月的 6,000 元加起来,按年度税率表算出“本该扣多少”,再减掉前 n−1 个月已经扣的。
| 月份 | 累计应纳税所得额 | 适用税率 | 速算扣除数 | 累计应扣税额 | 本月实际扣缴 |
|---|---|---|---|---|---|
| 1 月 | 6,000 | 3% | 0 | 180 | 180 |
| 2 月 | 12,000 | 3% | 0 | 360 | 180 |
| 3 月 | 18,000 | 3% | 0 | 540 | 180 |
| 4 月 | 24,000 | 3% | 0 | 720 | 180 |
| 5 月 | 30,000 | 3% | 0 | 900 | 180 |
| 6 月 | 36,000 | 3% | 0 | 1,080 | 180 |
| 7 月 | 42,000 | 10% | 2,520 | 1,680 | 600 |
| 8 月 | 48,000 | 10% | 2,520 | 2,280 | 600 |
| 9 月 | 54,000 | 10% | 2,520 | 2,880 | 600 |
| 10 月 | 60,000 | 10% | 2,520 | 3,480 | 600 |
| 11 月 | 66,000 | 10% | 2,520 | 4,080 | 600 |
| 12 月 | 72,000 | 10% | 2,520 | 4,680 | 600 |
关键就在第 6 个月和第 7 个月之间:6 月累计 36,000 元,正好卡在 3% 档的上限(“不超过 36,000 元”含 36,000);到 7 月累计变成 42,000 元,超了,整笔进入 10% 档,速算扣除数 2,520 元这时才第一次派上用场。
小陈全年缴税 4,680 元。到手工资:1–6 月每月 15,000 − 2,000 − 180 = 12,820 元;7–12 月每月 15,000 − 2,000 − 600 = 12,400 元。下半年每月比上半年少 420 元,6 个月合计少 2,520 元。
这 2,520 元不是“多交的税”。全年应缴就是 4,680 元,只是前半年只交了 1,080 元(180 × 6),后半年要补交 3,600 元(600 × 6),差额刚好是 2,520 元。钱一分没多交,只是交的时间不均匀。
变式一:如果他以为“每月都是 180”
很多人按第一个月的税额乘 12 来估全年:180 × 12 = 2,160 元。实际是 4,680 元,差了 2,520 元,正好是这个档位的速算扣除数。这不是巧合——按月估算法漏掉的正是速算扣除数这一项。所以看自己的税负,只能看全年累计数,不能用某个月的数乘 12。
变式二:9 月才补填专项附加扣除
假设小陈前 8 个月忘了填报专项附加扣除,9 月才在个税 APP 里补上(子女教育 + 赡养老人,合计 2,000 元/月)。补填后,累计专项附加扣除按全年追溯计算,9 月的账会变成这样:
| 项目 | 1–8 月(未填报) | 9 月(补填后重算) |
|---|---|---|
| 累计收入 | 120,000 | 135,000 |
| 累计减除费用 | 40,000 | 45,000 |
| 累计社保公积金 | 16,000 | 18,000 |
| 累计专项附加扣除 | 0 | 18,000(2,000 × 9 个月) |
| 累计应纳税所得额 | 64,000 | 54,000 |
| 累计应扣税额 | 6,400 − 2,520 = 3,880 | 5,400 − 2,520 = 2,880 |
9 月本月应扣 = 2,880 − 3,880 = −1,000 元。负数意味着这个月不扣税,而且这 1,000 元的差额会挂在账上,在后续月份继续抵减;如果到 12 月还没抵完,就在次年 3–6 月年度汇算时退还。
变式三:换成 2019 年以前的“按月单独计税”,会怎样
累计预扣法不是一开始就有的。2019 年之前,工资按月单独适用一张“月度税率表”,每个月算每月,跟其他月份无关。这两种算法在工资固定时结果一样,一旦某个月有波动,差别立刻出来。
还是小陈,月薪 15,000,每月应纳税所得额 6,000。假设 7 月公司发了一笔半年奖 30,000 元:
| 算法 | 7 月怎么算 | 7 月扣缴 | 全年合计 | 要不要等汇算退 |
|---|---|---|---|---|
| 老办法(按月单独) | 7 月应税 36,000,直接套月度税率表 25%、速算扣除 2,660 | 6,340 | 4,290 + 6,340 = 10,630 | 要,多扣了 2,950 |
| 累计预扣法 | 累计到 7 月 72,000,10% 档,减前 6 个月已扣 1,080 | 3,600 | 7,680 | 不要,当场就对 |
老办法的毛病在于“一波动就跳档”:这笔奖金在 7 月被单独拎出来适用 25% 的月度税率,全年算下来多扣 2,950 元,只能等次年汇算再退。累计预扣法把奖金放回全年的累计数里,按年度税率表一次算出总额,当月扣的就是全年应付的一部分,所以不需要事后大规模退税。这才是累计预扣法真正的设计目的——不是为了多扣,而是为了少退。
变式四:年中换工作,第二年为什么要补税
这是累计预扣法下最容易吃亏的一种情况。小陈 1–6 月在 A 公司月薪 15,000(每月应税 6,000),7 月跳槽到 B 公司月薪 20,000(社保公积金 2,600,专项附加仍为 2,000,每月应税 10,400):
| 阶段 | 本单位累计应税 | 本单位已扣 | 说明 |
|---|---|---|---|
| A 公司(1–6 月) | 36,000 | 1,080 | 3% 档,每月 180 |
| B 公司(7–12 月) | 62,400 | 3,720 | 从 0 重新累计,10% 档,每月 620 |
| 两处合计已扣 | — | 4,800 | — |
但年度汇算要把两处合并:全年应纳税所得额 36,000 + 62,400 = 98,400 元,按年度税率表应为 98,400 × 10% − 2,520 = 7,320 元。已经扣了 4,800 元,所以要补 2,520 元。
补的这 2,520 元正好等于速算扣除数,不是巧合:速算扣除数一年只能用一次,而 A、B 两家公司各自从零累计,各用了一次,等于多扣了一个 2,520。换工作的月份越靠后、两家公司工资越接近,这个差额越接近一个完整的速算扣除数。所以年中跳槽的人,别急着把新工资全部花掉——次年 3–6 月汇算时大概率要补一笔。
顺带说清另一个疑问:为什么次年 1 月工资条上的个税又变回一百多?因为累计数在新的一年从零重新开始,不是降薪,也不是税率变了。
三、划界:五个最容易算错的地方
| 情形 | 常见做法 | 正确做法 | 做错的后果 |
|---|---|---|---|
| 年中换工作 | 以为新单位会接着上家的累计数继续算 | 新单位从 0 重新累计,只扣本单位发放的工资(补多少见上文变式四) | 当年少扣税,次年汇算要一次性补缴 |
| 一次性补发数月工资 | 认为分摊到各月就没事 | 并入发放当月的累计所得计算 | 当月可能直接跳档,税额陡增 |
| 社保基数年中调整 | 忽略不计 | 按调整后的实际缴纳额计入累计专项扣除 | 多扣的月份要重算,税额前后不一致 |
| 两处以上任职 | 以为两边各扣 5,000 就完事 | 减除费用一年只能享受 6 万,两边重复扣的要在汇算时合并 | 汇算时补税,金额往往不小 |
| 把劳务报酬当工资 | 用工资的累计预扣法去算 | 劳务报酬按次预扣(20%–40%),年度再并入综合所得 | 预扣金额算错,且预扣率高不代表最终税负高 |
第三条需要多说一句。多数地区的社保缴费基数在每年 7 月调整,调整后个人缴纳部分变了,累计专项扣除的总额也跟着变,当月税额会再跳一次。所以有的人 7 月不只遇到税率档跳档,还叠加了社保调整,到手工资降得比预期更多——这两个原因要分开看,不要混成“公司又扣钱了”。
四、速查:你的跨档月份在第几个月
下表按“每月应纳税所得额”(已扣完 5,000 起征点、社保公积金、专项附加扣除后的余额)查,找到你那一行,就知道税额从哪个月开始跳。
| 每月应纳税所得额 | 跨档月份 | 全年应纳税所得额 | 全年税额 | 跨档前每月扣 | 跨档当月扣 | 跨档后每月扣 |
|---|---|---|---|---|---|---|
| 3,000 元 | 不跨档(12 月正好 36,000) | 36,000 | 1,080 | 90 | — | 90 |
| 5,000 元 | 第 8 个月 | 60,000 | 3,480 | 150 | 430 | 500 |
| 6,000 元 | 第 7 个月 | 72,000 | 4,680 | 180 | 600 | 600 |
| 10,000 元 | 第 4 个月 | 120,000 | 9,480 | 300 | 580 | 1,000 |
| 15,000 元 | 第 3 个月 | 180,000 | 15,480 | 450 | 1,080 | 1,500 |
注意表里“跨档当月”和“跨档后每月”的数往往不一样:跨档当月的税额反而比之后几个月低。原因是速算扣除数在当月一次性用掉了——比如每月应税 5,000 元那行,第 8 个月扣 430 元,从 9 月起变成每月 500 元。所以看到“某个月扣得特别少、下个月又变多”,不是算错,是速算扣除数在起作用。
表里“每月多扣”的钱不是白交的,全年总额一分不多。如果你的月薪不是整数、或者社保基数各地不同,用工资个税计算器填进去,会直接把 12 个月的逐月明细和跨档月份列出来,比手算快。