计算工具 · 工资与个税

个税计算器

月度/全年/综合所得/专项扣除

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 61 次使用
税前收入income
五险一金(个人部分)insurance
专项附加扣除special勾选并可改额(元/月)
专项附加合计2,000 元/月 · 24,000 元/年
其他扣除others
就绪 · 现行综合所得 7 级超额累进,纯本地实时测算
第一节

关于本工具

About

每月工资条发下来,个税扣了多少、专项附加扣除有没有用满,多数人心里没数。这个计算器把月度预扣、全年汇算、综合所得和专项扣除都摆进一个界面,输入当月收入与扣除项,直接得到应纳税额与税后收入。数据只在浏览器内计算,不离开本地——发薪核对、年终奖规划、跳槽谈薪资时随手算一笔,账就清楚了。

使用场景

年终奖计税抉择

年底财务通知小王年终奖10万,有两种计税方式可选:单独计税或并入综合所得。单独算税率低但可能踩雷,并入后总税负可能反而更高。小王用本工具分别输入全年工资和年终奖,对比两种方案的实际应缴税额,发现单独计税能省下近3000元。工具自动按现行政策计算,避免了手动翻税率表的繁琐和误算。

新入职谈薪算到手

李工接到两个offer:A公司月薪2.2万,五险一金按最低基数交;B公司月薪2万,按实际工资全额缴纳。表面看A公司月薪多2000,但用本工具输入两种社保基数后,发现B公司每月到手反而多出400多元,因为高额公积金个人部分能抵扣个税。工具让他看清了社保基数对税后收入的真实影响。

专项扣除填报前摸底

每年12月个税专项附加扣除确认时,张姐拿不准是选房租还是房贷利息抵扣更划算。她老公名下有房贷,但她在北京租房。用本工具分别模拟两种填报方案,发现选住房租金扣除(每月1500元)比选住房贷款利息(每月1000元)全年多节税600元。工具让她在操作前就看到了最优解。

兼职收入汇算清缴

程序员小陈主业月薪3万,业余接外包项目年收入8万。平台已按劳务报酬预扣了部分个税,但年度汇算时可能退税也可能补税。他用本工具输入全年综合所得和已预缴税额,系统算出需补缴2100元。提前知道结果后,他预留了这笔钱,避免了次年3月汇算时措手不及。

换工作空窗期税负测算

设计师小刘5月跳槽,中间有2个月没发工资。新公司年薪比旧公司高,但全年总收入只多了1万。他担心跳槽后税率跳档导致税负大增。用本工具输入分段收入后,发现因空窗期拉低了全年平均税率,实际税负比预期低1800元。工具帮他打消了顾虑,放心签了新合同。

对比矩阵

维度本工具竞品 A(自然人电子税务局)传统方法(手工计算)
计算范围月度 / 全年 / 综合所得 / 专项扣除仅支持年度汇算清缴,无月度试算需自行查阅税率表分段累加,易漏项
输入方式浏览器直接填写收入与扣除项需登录税务系统,绑定实名信息手写或 Excel,无自动校验
隐私数据仅存本地浏览器,不上传服务器所有数据上传至税务服务器,需实名认证数据完全离线,但纸质易丢失
速度填写后即时出结果需等待系统加载、验证身份手动计算一份约 5-15 分钟
专项扣除支持支持子女教育 / 房贷 / 租房 / 继续教育等 7 项支持全部专项附加扣除,但需逐项录入需自行记忆扣除标准,易算错
更新及时性跟随最新个税政策更新官方系统,政策同步最及时需自行关注政策变动,容易过时
使用门槛无需注册登录,打开即用需要注册账号 + 实名认证 + 绑定银行卡需理解税率表与速算扣除数
输出结果显示应纳税额、已缴、应补/退显示汇算结果及退税/补税金额仅得出税额,无补退逻辑
第二节

使用指南

Getting Started

使用步骤

  1. 1在「收入类型」下拉框中选择月薪、年薪或劳务报酬,工具据此切换计税逻辑
  2. 2填入税前收入金额(单位元),专项扣除栏可选填社保公积金或继续教育等附加项
  3. 3点击「计算」按钮,结果区立即显示应纳税额、税后收入及适用税率档位
  4. 4切换「全年累计」标签可查看按年汇算的应退/补税额,数据随输入实时更新

输入输出示例

输入输出说明
月薪 15000,社保公积金 2000,专项附加扣除 3000,起征点 5000应纳税所得额:5000 元;应缴个税:290 元;税后收入:12710 元常规:典型工薪族,含社保和专项扣除,验证基本累计预扣法计算
全年一次性奖金 50000,选择单独计税,无其他收入应纳税所得额:50000 元;税率:10%;速算扣除数:210;应缴个税:4790 元常规:年终奖单独计税场景,验证奖金除以12找税率逻辑
月薪 5000,无社保公积金,无专项扣除应纳税所得额:0 元;应缴个税:0 元;税后收入:5000 元边界:收入刚好等于起征点,验证零税逻辑,无扣除项时结果正确
月薪 300000,社保公积金上限 3000,专项附加扣除 0应纳税所得额:292000 元;税率:45%;速算扣除数:15160;应缴个税:116240 元;税后收入:180760 元边界:超高收入,验证最高税率45%的触发条件和速算扣除数正确性
月薪 0,无社保公积金,无专项扣除应纳税所得额:0 元;应缴个税:0 元;税后收入:0 元边界:零收入场景,验证工具不报错且输出合理(无负值)
月薪 8000,社保公积金 500,专项附加扣除 10000(已超过应纳税所得额)应纳税所得额:0 元;应缴个税:0 元;税后收入:7500 元易错:专项扣除大于应纳税所得额时,工具应正确处理为0税,而非负税
综合所得:年薪 200000(含工资、劳务报酬),已预缴个税 5000,无专项附加扣除全年应纳税所得额:140000 元;应补退税额:-5000 元(退税 5000 元)易错:综合所得汇算清缴场景,验证已预缴与应缴的差额计算,退税显示为负值

常见错误对照

1.累计减除费用按月份重复扣除

✗ 错误每月应纳税所得额 = 月收入 - 5000
✓ 修复累计应纳税所得额 = 截至当前月累计收入 - 累计减除费用(月数 × 5000)

个税采用累计预扣法,减除费用需按月累计。若每月单独扣5000,会多扣减除费用、少算税款。

2.年终奖单独计税时,错误除以12后套用月度税率表

✗ 错误年终奖 60000,60000 ÷ 12 = 5000,适用税率 10%,速算扣除数 210
✓ 修复年终奖 60000,60000 ÷ 12 = 5000,适用月度税率表 10%,速算扣除数 210,应纳税 = 60000 × 10% - 210 = 5790

全年一次性奖金单独计税时,除以12找税率,但计算税款时用全额乘税率、减速算扣除数,不是先减后乘。

3.专项附加扣除未按实际享受月份填写

✗ 错误全年租房,但专项扣除只填了 12000(全年按12个月×1000)
✓ 修复租房合同覆盖全年,专项附加扣除填写 12 个月 × 1500 = 18000

专项附加扣除标准按实际享受月份计算,不是固定12个月。租房扣除标准为800/1100/1500元/月,需根据城市选择。

4.全年综合所得计算时,遗漏劳务报酬的减除费用

✗ 错误劳务报酬 30000 元,直接按 30000 计入综合所得
✓ 修复劳务报酬 30000 元,减除费用 30000 × 20% = 6000,计入综合所得 24000

劳务报酬所得在计入综合所得前,需先扣除20%的费用(每次收入≤4000元的扣800元)。直接全额计入会虚增收入。

5.月度计算时,忽略三险一金个人缴纳部分可扣除

✗ 错误月薪 15000,应纳税所得额 = 15000 - 5000 = 10000
✓ 修复月薪 15000,社保公积金个人部分 2000,应纳税所得额 = 15000 - 5000 - 2000 = 8000

三险一金(养老、医疗、失业、住房公积金)个人缴纳部分可在税前扣除。忽略会导致多计算应纳税所得额。

6.全年一次性奖金选择并入综合所得时,重复扣除减除费用

✗ 错误年终奖 30000 并入综合所得,同时综合所得中已扣 60000 减除费用,年终奖部分再扣 5000
✓ 修复年终奖并入综合所得后,全年减除费用统一为 60000,不再单独为年终奖扣减除费用

年终奖选择并入综合所得后,全年只享受一次 60000 元减除费用。重复扣除会导致税款偏低,汇算清缴时需补税。

7.误将全年一次性奖金除以12后的金额直接作为应纳税额

✗ 错误年终奖 36000,36000 ÷ 12 = 3000,以为应纳税 3000 × 3% = 90
✓ 修复年终奖 36000,36000 ÷ 12 = 3000,适用税率 3%,应纳税 = 36000 × 3% = 1080

除以12仅用于确定适用税率和速算扣除数,应纳税额 = 年终奖全额 × 税率 - 速算扣除数,不是除以12后的金额。

8.综合所得汇算时,遗漏全年一次性奖金单独计税的优惠

✗ 错误全年综合所得 12万,年终奖 5万,全部按综合所得计税
✓ 修复全年综合所得 12万,年终奖 5万,选择年终奖单独计税(适用10%税率,速算扣除210)

全年一次性奖金可选择单独计税或并入综合所得。单独计税通常适用于年终奖较高、综合所得较低的情况,可降低整体税负。

第三节

工作原理

How It Works

核心公式

应纳税额 = (累计收入 - 累计免征额 - 累计专项扣除 - 累计专项附加扣除 - 累计依法确定的其他扣除) × 预扣率 - 速算扣除数 - 累计已预扣预缴税额

变量说明

  • 累计收入当年截至本月工资薪金总额
  • 累计免征额每月5000元,按累计月数计算
  • 累计专项扣除三险一金个人缴纳部分累计
  • 累计专项附加扣除子女教育等7项附加扣除累计
  • 预扣率按累计应纳税所得额查表
  • 速算扣除数对应预扣率档位的常数
  • 累计已预扣预缴税额本年度已缴纳个税累计

示例

某人1月收入20000元,三险一金个人部分2000元,专项附加扣除1500元。累计免征额5000元。累计应纳税所得额=20000-5000-2000-1500=11500元,对应预扣率3%,速算扣除数0。1月应纳税额=11500×3%-0=345元。2月收入25000元,累计收入45000元,累计免征额10000元,累计专项扣除4000元,累计专项附加扣除3000元,累计应纳税所得额=45000-10000-4000-3000=28000元,预扣率3%,速算扣除数0,累计应纳税额=28000×3%=840元,2月应补缴=840-345=495元。

收入与扣除月薪 / 年终奖 / 五险一金累计预扣计算逐月累计收入 - 累计扣除查找适用税率按累计应纳税所得额匹配预扣率 / 速算扣除数本期应扣税年度汇算清缴全年收入汇总 - 全年扣除查找综合所得税率适用 3%–45% 七级超额累进全年应补退月度预扣汇总
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

import sys def calc_tax(income: float, special_deduction: float = 0, threshold: float = 5000) -> float: """ 计算月度个税(综合所得,适用 3%-45% 超额累进税率) :param income: 月度税前收入 :param special_deduction: 月度专项扣除(社保+公积金+专项附加) :param threshold: 起征点,默认 5000 :return: 应纳税额 """ taxable = income - threshold - special_deduction if taxable <= 0: return 0.0 # 税率表:级数 | 应纳税所得额上限 | 税率 | 速算扣除数 brackets = [ (3000, 0.03, 0), (12000, 0.10, 210), (25000, 0.20, 1410), (35000, 0.25, 2660), (55000, 0.30, 4410), (80000, 0.35, 7160), (float('inf'), 0.45, 15160) ] for limit, rate, deduction in brackets: if taxable <= limit: return round(taxable * rate - deduction, 2) return round(taxable * 0.45 - 15160, 2) if __name__ == '__main__': # 示例:月收入 15000,专项扣除 2000 tax = calc_tax(15000, 2000) print(f"应纳税额:{tax} 元") # 输出:应纳税额:690.0 元
function calcMonthlyTax(income, specialDeduction = 0, threshold = 5000) { const taxable = income - threshold - specialDeduction; if (taxable <= 0) return 0; const brackets = [ { limit: 3000, rate: 0.03, quickDeduct: 0 }, { limit: 12000, rate: 0.10, quickDeduct: 210 }, { limit: 25000, rate: 0.20, quickDeduct: 1410 }, { limit: 35000, rate: 0.25, quickDeduct: 2660 }, { limit: 55000, rate: 0.30, quickDeduct: 4410 }, { limit: 80000, rate: 0.35, quickDeduct: 7160 }, { limit: Infinity, rate: 0.45, quickDeduct: 15160 } ]; for (const b of brackets) { if (taxable <= b.limit) { return Math.round((taxable * b.rate - b.quickDeduct) * 100) / 100; } } return Math.round((taxable * 0.45 - 15160) * 100) / 100; } // 示例:月收入 15000,专项扣除 2000 console.log(calcMonthlyTax(15000, 2000)); // 690
package main import "fmt" func calcTax(income, specialDeduction, threshold float64) float64 { taxable := income - threshold - specialDeduction if taxable <= 0 { return 0 } type bracket struct { limit float64 rate float64 quickDeduct float64 } brackets := []bracket{ {3000, 0.03, 0}, {12000, 0.10, 210}, {25000, 0.20, 1410}, {35000, 0.25, 2660}, {55000, 0.30, 4410}, {80000, 0.35, 7160}, {1e18, 0.45, 15160}, } for _, b := range brackets { if taxable <= b.limit { return float64(int((taxable*b.rate - b.quickDeduct) * 100)) / 100 } } return float64(int((taxable*0.45 - 15160) * 100)) / 100 } func main() { // 示例:月收入 15000,专项扣除 2000 fmt.Println(calcTax(15000, 2000, 5000)) // 690 }
function calcAnnualTax( annualIncome: number, annualSpecialDeduction: number = 0, annualThreshold: number = 60000 ): number { const taxable = annualIncome - annualThreshold - annualSpecialDeduction; if (taxable <= 0) return 0; const brackets: { limit: number; rate: number; quickDeduct: number }[] = [ { limit: 36000, rate: 0.03, quickDeduct: 0 }, { limit: 144000, rate: 0.10, quickDeduct: 2520 }, { limit: 300000, rate: 0.20, quickDeduct: 16920 }, { limit: 420000, rate: 0.25, quickDeduct: 31920 }, { limit: 660000, rate: 0.30, quickDeduct: 52920 }, { limit: 960000, rate: 0.35, quickDeduct: 85920 }, { limit: Infinity, rate: 0.45, quickDeduct: 181920 } ]; for (const b of brackets) { if (taxable <= b.limit) { return Math.round((taxable * b.rate - b.quickDeduct) * 100) / 100; } } return Math.round((taxable * 0.45 - 181920) * 100) / 100; } // 示例:年收入 180000,专项扣除 24000 console.log(calcAnnualTax(180000, 24000)); // 7080
#!/bin/bash # 月度个税计算(使用 bc 处理浮点) calc_tax() { local income=$1 local special=$2 local threshold=${3:-5000} local taxable=$(echo "$income - $threshold - $special" | bc) if (( $(echo "$taxable <= 0" | bc -l) )); then echo 0 return fi # 税率表:级数上限 税率 速算扣除数 local brackets=( "3000 0.03 0" "12000 0.10 210" "25000 0.20 1410" "35000 0.25 2660" "55000 0.30 4410" "80000 0.35 7160" "99999999 0.45 15160" ) for b in "${brackets[@]}"; do read -r limit rate quick <<< "$b" if (( $(echo "$taxable <= $limit" | bc -l) )); then local tax=$(echo "$taxable * $rate - $quick" | bc) printf "%.2f\n" "$tax" return fi done } # 示例:月收入 15000,专项扣除 2000 calc_tax 15000 2000 # 输出 690.00
第五节

常见问题

Q & A
我这个月换工作了,两家公司都扣了税,用这个算会不会重复算?

不会。个税计算器支持「综合所得」模式,只需要把两家公司发的工资总额、各自预扣的累计专项扣除填进去,系统按全年累计收入统一计税,再减去已预缴税款,就能算出当月应补或应退的差额。注意:离职当月原公司发的工资也算在全年累计收入里,别漏填。

为什么我按月度算出来的税和公司扣的不一样?

常见原因是公司用的是「累计预扣法」,而月度计算器默认按单月收入单独计税。差异主要来自:累计预扣法会累计到当前月的全年收入、专项扣除和已预缴税款,税率档位随累计收入变化。建议改用「全年综合所得」模式,输入1月到当月的累计数据,结果就和公司一致了。

专项扣除里的「继续教育」到底能扣多少?我考了个证能填吗?

可以。继续教育专项扣除分两类:学历(学位)继续教育每月400元,最长48个月;职业资格继续教育在取得证书当年一次性扣除3600元。你考的职业资格证属于后者,需在发证年度内申报。注意:同一证书只能扣除一次,且需在《国家职业资格目录》内。

年终奖单独计税和并入综合所得哪个更划算?怎么试?

本工具支持两种方式分别算。先按「全年一次性奖金」单独计税,再把年终奖并入全年综合所得算一次,对比结果。一般规律:全年收入较低(扣除后应纳税所得额小于零)时并入划算;收入较高且年终奖占比较大时单独计税更省。建议两种都试一遍,选税额低的。

我填了房贷利息扣除,为什么算出来税没少多少?

房贷利息专项扣除标准是每月1000元,全年12000元,直接在应纳税所得额中扣除。如果适用税率是3%,那么全年实际减税只有12000×3%=360元;如果税率是10%,减税1200元。所以感觉不明显是正常的——扣除额本身不高,且减税效果取决于你的边际税率。

这个计算器要联网吗?数据会不会上传到服务器?

不需要联网,数据全部在浏览器本地计算。本工具用纯前端 JavaScript 实现,你输入的工资、专项扣除、三险一金等所有数据都不会离开你的设备,刷新页面或关闭标签页后就清空了。可以离线使用,没有上传服务器或存储记录的风险。

我算出来退税金额是负数,是不是要补税?怎么补?

负数表示需要补税。年度汇算清缴后,如果全年预缴税款小于应纳税额,差额就是应补税额。补税需在次年3月1日至6月30日期间,通过个人所得税APP或自然人电子税务局办理。注意:补税金额不超过400元可免申报,超过400元必须补缴,否则会有滞纳金。

为什么我输入税前工资,算出来的个税比同事用其他软件算的多几十块?

差异通常来自三险一金扣除基数不同。个税计算器要求手动输入三险一金金额,如果你按实际缴纳额填,而同事的软件用了当地社保基数上限自动计算,结果就会不同。另外,专项附加扣除(如房租、赡养老人)是否勾选也会影响。建议先核对双方填的扣除项是否一致,再比较结果。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭