起因是这样的,我发现我的工资代扣个税,相较以前翻了三、四倍,工资也没给我涨呀,怎么交税还多了。怀疑给我算错了,于是我翻了翻资料找到一张税务总局的个人所得税税率表。
它是这样计算的:
1. 一年分成12个月,交纳税也分为12期
2. 本期应预扣预缴税额 = (累计预扣预缴应纳税所得额 * 税率 - 速算扣除数)- 累计已预扣预缴税额
3. 累计预扣预缴应纳税所得额 = 累计收入 - 累计免税收入 - 累计减除费用 - 累计专项扣除 - 累计专项附加扣除 - 累计依法确定的其他扣除
4. 其中,累计减除费用,按照5000元/月乘以纳税人当年截至本月在本单位的任职受雇月份数计算
举个例子,假设张三每月工资收入20000,各项社会保险金(五险一金)扣除为1000。
在八月份:
- 张三累计减除费用是
5000*8=40000
- 累计专项扣除是
1000*8=8000
- 排除张三有免税收入等情况,他的累计预扣预缴应纳税所得额为
20000*8-40000-8000=112000
, - 累计预扣预缴应纳税所得额
112000
对应税率表的2级数,所以第八期应预扣预缴税额为(112000*0.1-2520)-累计已预扣预缴税额
。 - 累计已预扣预缴税额是前7个月的纳税总和。这样计算,
20000*7-5000*7-1000*7=98000
对应税率表的2级数,前7期累计已预扣预缴税额为98000*0.1-2520 = 7280
- 最后,张三在八月份,他要纳税为
(112000*0.1-2520)-7280=1400
等等,文章还没完呢,不然又有人怼我纯水了。
我发现网络上像这类纳税计算器参差不齐,计算公式差得离谱,所以决定自己动手撸一个。
个税计算器
由于html、css、js
代码内容长,所以我把这部分内容拼接成一张大图,也方便读源码。css
布局大量使用Flex
弹性布局,不了解的同学先学习一波《和我女神王冰冰一起学display: flex布局》。
描述下js逻辑层:
- 本月工资、社保(五险一金)、专项附加扣除都要乘以纳税期数,分别计算出各自的累计数
- 本月工资、社保(五险一金)、专项附加扣除、累计减除费用累计数相减计算后,就是累计预扣预缴应纳税所得额(累计应缴税款)
- 个人所得税税率表转化成
taxRates
数据结构,累计预扣预缴应纳税所得额作为参数调用getTaxRate
方法返回税率、速算扣除数 - 累计已预扣预缴税额(已缴税款)计算为纳税期数减1,然后以减后的纳税期数再重复一遍上述计算过程
- 本期应预扣预缴税额(应交税额)= 累计预扣预缴应纳税*税率-速算扣除数-累计已预扣预缴税额(已缴税款)
布局兼容到了PC端、移动端,它们分别是这样的:
想要源码的同学,可以访问下面链接保存页面即可。
个税计算器在线链接:https://www.linglan01.cn/c/salary/
最后的话
文章中一类的个税计算器,一般计算出来的结果是有偏差的,原因如下:
- 每月工资不是固定的,受KPI影响工资会有一定起浮
- 奖金类的收入也要计算进去,如果有奖金没有计算进累计预扣预缴应纳税所得额,那计算的结果就是会偏差
所以说,个税计算器只能计算出大概的税。
想要准确的计算自己纳税情况,建议下载个人所得税APP。
当工资收入越高,应纳税所得额比重也会增大,比重在到一定程度后,我想我们应该要考虑如何合法避税。
每年年未都会有一次在个人所得税APP提交专项附加扣除,它能一定程度上补返回税额给我们。
另外,开通个人养老金帐户也可以进行一定额度的避税,将来养老滋不滋润重点看这个帐户。我收入还不足以供个人养老帐户,有条件、有需要的同学可以去了解一下。
如果我的文章对你有帮助,您的就是对我的最大支持^_^。
欢迎围观朋友圈、加我微信拉您加入「人类高质量前端交流群」