HR 说月薪一万,自己按计算器却发现每月扣的不是一个固定的数——年初 150,越到年底扣得越多。这不是算错,是三件事叠在一起:每月 5000 元的减除费用、七档超额累进税率,以及按「年初到当月」累计来预扣的方式。
先把工资和应纳税所得额分开
税不是按整份工资算的。每月先减掉 5000 元的减除费用,全年就是 60000 元,剩下的部分才是计税基数。顺带纠正一个流传很广的叫法:这 5000 元常被喊作「起征点」,法律上的名字是基本减除费用,性质是免征额。两者不一样——起征点是没到门槛一分不征、到了门槛就全额计税,免征额是只免掉这一段、超出部分照常进档。
前提要说清,也要说透:下面的算例只减这 5000 元,不减社保公积金与专项附加扣除,所以它给的是这一口径下的税额,不能直接拿去对照工资条。而且「算例不算社保」并不等于「实际到手更多」:三险一金的个人部分先从应发里扣走,不进打卡工资(公积金那笔进的是你自己的账户),同一时间它们又把计税基数压低、让税额变小。一增一减,实际到手现金通常比这里的数字低,实际税负通常比下面那一列「税负」低。
七档税率是逐段叠加的
「超过 36000 元的部分适用 10%」这句话常被读成整份收入都跳到 10%。实际上是分段的:36000 元以内那部分始终按 3%,只有落进下一档的那部分才按 10%。月薪 10000 元,全年基数 60000 元,其中 36000 按 3% 是 1080 元,剩下 24000 按 10% 是 2400 元,两段相加 3480 元。
| 全年应纳税所得额上限 | 税率 | 速算扣除数 |
|---|---|---|
| 36000 | 3% | 0 |
| 144000 | 10% | 2520 |
| 300000 | 20% | 16920 |
| 420000 | 25% | 31920 |
| 660000 | 30% | 52920 |
| 960000 | 35% | 85920 |
| 超过 960000 | 45% | 181920 |
速算扣除数是怎么来的
用表格算就一行乘法:60000 × 10% 减 2520 等于 3480,和逐段相加的结果一样。这个 2520 不是硬记的数,每一档都等于上一档的速算扣除数加上「上一档上限 × 两档税率之差」:36000 × (10% − 3%) 得 2520,再加 144000 × (20% − 10%) 得 16920,一路推到最后一档的 181920。我把逐段累加和「基数乘税率减速算扣除数」在 1 元到 120 万元区间抽样对了一遍,最大偏差 0.000000 元。
几个工资档放一起看
- 月薪 8000:全年基数 36000 元,税额 1080.00 元,月均 90.00 元,占全年收入 1.125%。
- 月薪 10000:基数 60000 元,税额 3480.00 元,月均 290.00 元,税负 2.90%。
- 月薪 15000:基数 120000 元,税额 9480.00 元,月均 790.00 元,税负 5.27%。
- 月薪 17000:基数 144000 元,税额 11880.00 元,月均 990.00 元,税负 5.82%。
- 月薪 20000:基数 180000 元,税额 19080.00 元,月均 1590.00 元,税负 7.95%。
- 月薪 30000:基数 300000 元,税额 43080.00 元,月均 3590.00 元,税负 11.97%。
首行的 1080 ÷ 96000 恰为 1.125%,四舍五入成 1.13% 会丢信息,所以留着原值;其余各行的税负按两位小数。第一行刚好压在 36000 的档界上,全年一分不进 10% 档;月薪从 8000 加到 10000 只多两千,税额却从 1080.00 变成 3480.00,是因为超出档界的 24000 元开始按 10% 计。第四行同理,月薪 17000 对应的基数正好是第二档上限 144000,20% 那段还没开始;再多给一千月薪,基数变 156000,超出的 12000 元按 20% 计,税额从 11880.00 涨到 14280.00 元——多发 12000、多交 2400,整体税负只从 5.82% 爬到 6.61%。
5000 之外还有几层扣除,顺序是定死的
《个人所得税法》第六条给居民个人定的算法是:一个纳税年度的收入额,依次减掉基本减除费用六万元、专项扣除、专项附加扣除、依法确定的其他扣除,剩下的才是应纳税所得额。顺序不能自己调:先减 60000,再减三险一金(法律上就叫专项扣除),最后才轮到专项附加扣除。所以「社保要在 5000 之前先扣掉」的说法是反的;发薪时的累计预扣走同一套顺序,只是每一项都按「年初到当月」累计。
专项附加扣除有七项:子女教育、3 岁以下婴幼儿照护、继续教育、大病医疗、住房贷款利息、住房租金、赡养老人。其中六项能在发薪时按月减,大病医疗不行——它的数额要等整个年度医保目录内的自付部分累计起来才算得出,只能在次年 3 到 6 月办年度汇算时扣,翻遍全年工资条也找不到这一项。住房贷款利息与住房租金同年只能选一项。这些扣除的作用都是压低基数,而七档税率查的是压低之后的基数,同一份工资,申报与不申报最后落进的可能不是同一个档,这也是上面那列「税负」普遍高于多数人实际感受的原因。
为什么越到年底扣得越多
累计预扣法把年初到当月的应纳税所得额加总去查档——查的就是上面这张表,工资薪金预扣率表的档距、税率、速算扣除数与年度表一致——算出「到今天为止一共该交多少」,再减掉之前已经扣过的。月薪 10000 每月基数 5000,前 7 个月累计到 35000 元都在 3% 档,每月扣 150.00 元;第 8 个月累计 40000 元跨进 10% 档,当月要扣 430.00 元;之后每月 500.00 元。按「只减 5000」这个口径,每月扣完剩 9850.00、9570.00、9500.00 元,但它对不上打卡工资,因为还没减三险一金。全年合计税额仍是 3480.00 元,和年度算法一致。别拿 12 月扣的 500.00 元除以月薪得到 5.00% 就当税负,那只是当月状态;3480.00 除以全年 120000 得到的 2.90% 才是。
要确认自己那份差在哪个月跨了档,我把工资、月份和已知扣除项填进 个人所得税计算,让它按累计预扣逐月列一遍。背着房贷的话,月供得先用 房贷计算器 定下还款方式,才能算进现金流。
Q:同样月薪,为什么两个人到手不一样
差异通常在三处:社保公积金的缴费基数与缴存比例、专项附加扣除申报了几项,以及入职月份不同导致累计预扣走到了不同档位;这三项都不在本文算例里。
Q:年中换工作,为什么下半年扣得特别多
每家单位只按在本单位的累计收入预扣,不会跟前一份工作合并。两份收入要在年度汇算时合起来重算,差额那时补或退,所以年中觉得扣多了,汇算未必真多交。
Q:档界附近多挣一块钱会反而亏吗
不会。超额累进只对超出档界的部分适用更高税率,税额随收入单调增加,不会出现多挣一块到手反而少的倒挂——这也是速算扣除数能用一行乘法替代逐段加法的前提。