使用方法
- 在「税前月工资」填 15000(示例值,元/月),允许 3000~1000000,步长 100。
- 在「五险一金个人缴纳合计」填 2500(养老 8%、医疗 2%、失业 0.5%、住房公积金 5%~12% 的个人部分之和),这一栏是个人实际扣走的金额,不含单位缴纳部分。
- 在「专项附加扣除合计」填 2000(例如子女教育 1000 元 + 住房贷款利息 1000 元;赡养老人 3000 元、继续教育 400 元、住房租金按城市 1500/1100/800 元,可自行加总)。
- 点「计算实发工资」或按 Enter,结果卡给出每月应纳税所得额、首月预扣个税、首月实发、全年个税、全年实发、税负率与首次跨档月份。
- 下面的「12 个月累计预扣明细」逐月列出累计应纳税所得额、所在级数、当月预扣与当月实发;「月薪档位对照」按当前扣除假设列出 24 个月薪档位,可「加载更多档位」「导出 CSV」或「复制明细表」。
这个工资计算器能解决什么问题
一是解释「为什么我的工资越扣越多」。默认参数下 1~6 月每月个税都是 165 元、实发 12335 元;到第 7 个月累计应纳税所得额 38500 元跨过 36000 元这道线,预扣率从 3% 跳到 10%,当月个税变成 340 元、实发掉到 12160 元,第 8 个月起稳定在 550 元与 11950 元。这不是公司算错,而是累计预扣法把全年税额摊成了「前低后高」。
二是核对自己的工资条。拿到工资条后把「应纳税所得额」倒推一遍:税前月薪 − 5000 − 五险一金个人部分 − 专项附加扣除,与工资条上的数字对上,就能确认公司有没有漏报专项附加扣除。
三是比较两个 offer 的实际差距。A 公司月薪 18000、个人五险一金按 2500 元扣、专项附加 2000 元,每月应纳税所得额 8500 元,全年个税 7680 元、全年实发 178320 元;B 公司月薪 20000 但公积金只按低基数缴、个人合计 800 元,每月应纳税所得额 12200 元,全年个税 12360 元、全年实发 218040 元——两者年实发差 39720 元,其中一部分差距恰恰来自 B 少缴的 1700 元/月五险一金要自己承担。
四是估算专项附加扣除能省多少税。在月薪 15000、五险一金 2500 的条件下,每增加 1000 元/月的专项附加扣除,全年个税减少 1200 元,因为 1000 × 12 = 12000 元的应纳税所得额正好落在 10% 这一档。填之前先算清楚,比盲目申报更实在。
本页不做这些事:不帮你申报个税、不处理年终奖单独计税与并入综合所得的取舍、不算劳务报酬与稿酬的预扣率,也不含股票期权与限制性股票。要看某个月份的加班费金额请用「加班工资计算器」,要把月薪换成时薪请用「年薪换算时薪」。
计算原理:累计预扣法与七级超额累进预扣率表
这个工资计算器只实现一套算法:累计预扣预缴法。依据是国家税务总局公告 2018 年第 61 号《个人所得税扣缴申报管理办法(试行)》第六条,公式写出来是两步。
第一步算累计应纳税所得额:累计预扣预缴应纳税所得额 = 累计收入 − 累计免税收入 − 累计减除费用 − 累计专项扣除 − 累计专项附加扣除 − 累计依法确定的其他扣除。其中「累计减除费用」按 5000 元/月 × 当年截至本月的月份数 计算,《个人所得税法》第六条规定综合所得的基本减除费用是每年 60000 元,分摊到月就是 5000 元。默认参数下每月应纳税所得额 = 15000 − 5000 − 2500 − 2000 = 5500 元,第 7 个月的累计值是 5500 × 7 = 38500 元。
第二步按累计值查表再倒推当期税额:本期应预扣预缴税额 = (累计应纳税所得额 × 预扣率 − 速算扣除数) − 累计已预扣预缴税额。所以第 7 个月算出来的是 38500 × 10% − 2520 = 1330 元 的累计税额,减去前 6 个月已经扣过的 990 元,当期只补 340 元。从第 8 个月起累计值落在同一档内,每次增量都是 5500 × 10% = 550 元,税额就稳定下来了。
速算扣除数不是拍脑袋定的,而是让「分级累加」与「超额累进公式」结果相等的补偿项,递推式是:本级速算扣除数 = 上一级上限 × (本级税率 − 上一级税率) + 上一级速算扣除数。逐级算出来是 36000 × 7% = 2520、144000 × 10% + 2520 = 16920、300000 × 5% + 16920 = 31920、420000 × 5% + 31920 = 52920、660000 × 5% + 52920 = 85920、960000 × 10% + 85920 = 181920,与税局公布的表完全一致。顺带验算一个临界点:累计应纳税所得额正好 36000 元时,3% 档算得 1080 元,10% 档算得 36000 × 10% − 2520 = 1080 元,两边相等,说明两级公式在分界线上连续,不存在跳空。
为什么必须用「累计」而不是「当月」:工资薪金是按月预扣、按年汇算的。如果每月单独查表,1 月 5500 元按 3% 扣 165 元,全年就只扣 1980 元,而年度汇算应纳税额是 4080 元,年末要一次性补 2100 元。累计法让预扣总额一开始就朝着年度结果收敛,第 12 个月的累计税额 4080 元与按全年 66000 元直接查表(66000 × 10% − 2520 = 4080 元)完全相等——这也是本页能拿「逐月累计」和「年度总额」互相验算的原因。
完整示例(数值仅作演示)
示例条件与页面打开时的默认值完全一致:税前月薪 15000 元、五险一金个人缴纳 2500 元/月、专项附加扣除 2000 元/月,假设当年 1 月起收入稳定、没有年终奖和一次性奖金。
- 每月应纳税所得额 = 15000 − 5000 − 2500 − 2000 = 5500 元;
- 1~6 月:累计 5500 / 11000 / 16500 / 22000 / 27500 / 33000 元,都在 3% 档,每月预扣 165 元,实发 12335 元;
- 7 月:累计 38500 元 跨过 36000 元,进入 2 级 10%,累计税额 1330 元,当月预扣 340 元,实发 12160 元;
- 8~12 月:每月预扣 550 元,实发 11950 元;
- 全年个税合计 4080 元,全年实发 180000 − 30000 − 4080 = 145920 元,实际税负率 4080 ÷ 180000 = 2.27%。
把 12 个月的税额单列出来,可以直观看到「前 6 个月每人 165 元、第 7 月跳到 340 元、此后稳定 550 元」这条曲线,全年 165 × 6 + 340 + 550 × 5 = 990 + 340 + 2750 = 4080 元,与年度汇算完全对得上。
输入范围与对照表
页面的档位表固定五险一金个人 2500 元/月、专项附加扣除 2000 元/月,只改税前月薪。表里的数就是默认假设下的前几行:
| 税前月薪 | 年税前收入 | 全年个税 | 实际税负率 | 全年实发 |
|---|---|---|---|---|
| 6,000 | 72,000 | 0 | 0% | 42,000 |
| 8,000 | 96,000 | 0 | 0% | 66,000 |
| 9,500 | 114,000 | 0 | 0% | 84,000 |
| 10,000 | 120,000 | 180 | 0.15% | 89,820 |
| 12,000 | 144,000 | 900 | 0.63% | 113,100 |
| 15,000(默认) | 180,000 | 4,080 | 2.27% | 145,920 |
| 20,000 | 240,000 | 10,080 | 4.20% | 199,920 |
| 30,000 | 360,000 | 32,280 | 8.97% | 297,720 |
| 50,000 | 600,000 | 92,880 | 15.48% | 477,120 |
| 100,000 | 1,200,000 | 306,780 | 25.57% | 863,220 |
按月薪 9500 元这条线看:5000 + 2500 + 2000 = 9500,所以月薪不超过 9500 元时应纳税所得额为 0,全年个税是 0。很多人把 5000 元当成「起征点」,其实准确的叫法是基本减除费用,加上专项扣除与专项附加扣除之后,本例的免税线是 9500 元/月。
下面是算法用到的七级超额累进预扣率表(居民个人工资薪金所得预扣预缴适用),速算扣除数一列是照上节递推式算出来的:
| 级数 | 累计预扣预缴应纳税所得额 | 预扣率 | 速算扣除数 |
|---|---|---|---|
| 1 | 不超过 36,000 元 | 3% | 0 |
| 2 | 超过 36,000 至 144,000 元 | 10% | 2,520 |
| 3 | 超过 144,000 至 300,000 元 | 20% | 16,920 |
| 4 | 超过 300,000 至 420,000 元 | 25% | 31,920 |
| 5 | 超过 420,000 至 660,000 元 | 30% | 52,920 |
| 6 | 超过 660,000 至 960,000 元 | 35% | 85,920 |
| 7 | 超过 960,000 元 | 45% | 181,920 |
各输入框的允许范围:税前月工资 3000~1000000(步长 100);五险一金个人缴纳合计 0~100000(步长 50),且必须小于税前月工资;专项附加扣除合计 0~20000(步长 100)。
结果边界与舍入
- 应纳税所得额为负数时按 0 计。月薪 5000 元、五险一金 2500 元、专项附加 2000 元时是 5000 − 9500 = −4500,页面取 0,全年个税为 0,而不是退回一笔税。
- 金额一律四舍五入到分。税额由「累计应纳税所得额 × 预扣率 − 速算扣除数」算出,扣到 50 元粒度时可能出现半元结果:把五险一金改成 2550 元,3% 档每月税额正好是 163.50 元。页面按分显示,累计值本身不做提前舍入,所以逐月显示值相加与全年个税合计仍然一致(实测 163.50 × 6 + 314 + 545 × 5 = 4020.00 元,与全年合计相同)。
- 跨档只发生在累计值上,不会回头改历史月份。第 7 个月跳到 340 元,是因为要把 1~6 月少扣的部分(每月应扣 3850 × 10% − 2520 折算后的差额)补上;页面不会重算前 6 个月,工资条也不会。
- 上限 100 万元/月。再高会触发最高档 45%,且超出多数企业的薪酬结构;真实高收入里股权与一次性奖金占比更大,不适用本页的单一月薪模型。
- 假设全年收入与扣除稳定。中途调薪、间断发薪、年终奖单独计税都会让实际预扣与这里不同,需要用「累计实际发生额」重算,而不能按 12 个月等比外推。
- 五险一金必须小于税前月薪。填成相等或更大时会直接报错,而不是给出负的实发工资。另外本页按你填的金额扣除,不判断是否超过当地缴费基数上限。
- 专项附加扣除只影响税额,不影响实发口径。它是税前扣除项,不会从工资里实扣一分钱;能看到的只是当月预扣个税变小、实发变大。
常见问题
为什么我 7 月到手的工资突然变少了?
累计预扣预缴的必然结果。前几个月累计应纳税所得额还在 3% 档(36000 元以内),税额低;一旦累计值越过 36000 元,超出部分按 10% 计,同时要把前几个月按 3% 少扣的差额补进来,所以跳档那个月税额最高。默认参数下就是第 7 月:165 元 → 340 元。
5000 元是起征点吗?
严格说不是「起征点」,而是综合所得的基本减除费用,按年度 60000 元、月度 5000 元计算。真正的免税线要把专项扣除和专项附加扣除一起加上:本例 5000 + 2500 + 2000 = 9500 元,月薪不到 9500 元全年个税为 0。
每月单独查表算个税,结果会不会一样?
全年总额一样,但每个月的数完全不同。每月单独算时 5500 元永远按 3% 扣 165 元,全年只扣 1980 元,与年度应纳税额 4080 元差 2100 元,年末汇算要一次性补缴。累计法的作用就是把这个缺口摊到每个月。
五险一金该填多少?只填养老和医疗行不行?
填个人实际被扣走的合计金额,通常包括养老保险 8%、医疗保险 2%、失业保险 0.5% 和住房公积金 5%~12%。少填会抬高应纳税所得额、算出来的个税偏大。单位缴纳的那部分不进这一栏,它本来也不从你工资里扣。
专项附加扣除能省多少税?
看它落在哪一档。月薪 15000、五险一金 2500 时,每增加 1000 元/月(即 12000 元/年)的扣除,全年个税减少 1200 元;同一笔扣除在高收入档位省得更多,因为挡掉的边际税率更高。专项附加本身不会从工资里扣钱,它只把计税基数变小。
年终奖能不能一起放进这个工资计算器?
不能,本页只算按月发的工资薪金。年终奖可以选择单独计税(除以 12 找税率、用月度税率表)或并入当年综合所得,两种方式税额差别很大,应该分别算完再比。把年终奖摊进月薪会同时改变累计值和适用档位,结果不可用。
算出来的实发和工资条差几十块,问题出在哪?
常见的三个原因:一是工资条上的五险一金含了补缴或调整;二是当月有缺勤、事假、绩效浮动导致税前工资不等于固定月薪;三是公司按自然月预扣但出现了补发、追溯调薪。先拿工资条上的「应纳税所得额」和本页的累计值对齐,再逐项排查。
这个工资计算器算的是税后到手工资吗?
它算的是「税前月薪 − 五险一金个人部分 − 当月预扣个税」,也就等价于当月到手。没有扣的还有企业年金、补充医疗、工会费、伙食与住宿等代扣项,这些既不在本页的输入里,也不属于个税扣除,需要你从结果里再减一次。