四月莺飞草长,心情荡漾,清明小长假还有赶在路上的51黄金周,简直不能更愉快~然而,工资日到来的时候,有朋友傻眼了,前几月都挺正常的,为啥突然之间工资单少了快1000元???神马情况???(✿◡‿◡)。HR和会计小姐姐们好无奈,导入新个税系统算的,核实了好多遍都是这样,真不是她们算错了。。。。
进入正题,各位大大,你需要了解2019年新个税啦~~~

并不认真的新个税简介

详细请看
文章目录:2019新个税累计预扣法
Excel计算请参考这个
2019年新个税税率表及新个税政策下如何扣个税)

总之,2019年开始个税是按照年度计算的累计预扣缴税.
1、根据累计预扣预缴应纳税所得额算等级,也就是税率。
2、这个累计预扣预缴应纳税所得额=年度累计总收入-年度减除费用(5000每月)-年度累计专项扣除(也就是五险一金)-年度累计专项附加扣除(也就是租房补贴等)
所以工资掉下来的朋友,暴露了你们的高收入,你们已经升到累计预扣预缴应纳税所得额算二级啦,这个月开始个税预扣率由3%变成10%啦,基本上突变会发生在每次升级时候,貌似突变后的工资都会低于个人年均工资,也就是说相对而言前几个月工资比较多。

python计算个税并对比五险一金额度对总收入的影响

以月收入15000,五险一金500元为例,效果图如下。其中红线是年均税后月收入,绿线是应缴税累加值,蓝色柱形是每月应发工资。单位:元。
同时对比提高五险一金额度到1000元前后的收入情况,可以看到年度缴税总额减少了600元,即:月平均工资下降450元,五险一金账户月提高500元,少缴税部分进入了五险一金账户。

  • 纯属练手,仅供参考,如实际工资有出入,敬请谅解。
  • PS:没考虑各位大大们的高额年终奖,这个扣税我还不会算
  • PS:从2019年1月开始累积预扣算税,不管1月发的是2018年12月的工资还是2019年1月的工资
  • PS:或许应该考虑分段求算税收,后期改进再干
import pandas as pd
import numpy as np
import matplotlib.pyplot as pltdef net_pay_calc(salary_list=[10000,10000,20000],social_insurance_fund=2010.65,social_insurance_addition_fund=1500):"""函数:计算几个月的税后工资输入:salary_list = [10000,10000,20000] #你的税前工资序列social_insurance_fund = 2010.65 #你的五险一金钱数或序列social_insurance_addition_fund = 1500 #你的专项附加扣除输出:打印这几个月的税后工资"""basic_fee = 5000 #减除费用:基本生活保障基数if isinstance(salary_list,list):passelse:salary_list = [salary_list]month = len(salary_list)if isinstance(basic_fee,float) or isinstance(basic_fee,int):basic_fee = [basic_fee] * monthif isinstance(social_insurance_fund,float) or isinstance(social_insurance_fund,int):social_insurance_fund = [social_insurance_fund] * monthif isinstance(social_insurance_addition_fund,float) or isinstance(social_insurance_addition_fund,int):social_insurance_addition_fund = [social_insurance_addition_fund] * monthi = 1tax_pay_list = [] #累计预扣预缴应纳税所得额net_pays = []while True:print('*'*50)salary_sum = sum(salary_list[:i])  #累计收入basic_fee_sum = sum(basic_fee[:i])  #累计减除费用social_insurance_fund_sum = sum(social_insurance_fund[:i])  #累计专项扣除social_insurance_addition_fund_sum = sum(social_insurance_addition_fund[:i])  #累计专项附加扣除#累计预扣预缴应纳税所得额 = 累计收入-累计减除费用-累计专项扣除-累计专项附加扣除taxable_income = salary_sum - (basic_fee_sum + social_insurance_fund_sum + social_insurance_addition_fund_sum)taxable_income = taxable_income if taxable_income>0 else 0#预扣率rate = np.where(taxable_income <= 36000,0.03,np.where(taxable_income <= 144000,0.1,np.where(taxable_income <= 300000,0.2,np.where(taxable_income <= 420000,0.25,np.where(taxable_income <= 660000,0.3,np.where(taxable_income <= 960000,0.35,0.4))))))#速算扣除数quick_deduction = np.where(taxable_income <= 36000,0,np.where(taxable_income <= 144000,2520,np.where(taxable_income <= 300000,16920,np.where(taxable_income <= 420000,31920,np.where(taxable_income <= 660000,52920,np.where(taxable_income <= 960000,85920,181920))))))print("%d月份税前收入:%.2f 元"%(i,salary_list[i-1]))print("本月预扣率%.2f,速算扣除数%d"%(rate,quick_deduction))#本期应预扣预缴税额=(累计预扣预缴应纳税所得额*预扣率-速算扣除数-累计已预扣预缴税额tax_paid = tax_pay_list[i-2] if i>1 else 0 #累计已预扣预缴税额tax_due = taxable_income * rate - quick_deduction #i月累计预扣应缴纳税额tax_pay_list.append(tax_due) tax_of_month = tax_due - tax_paid  #本期应预扣预缴税额net_pay = salary_list[i-1] - social_insurance_fund[i-1] - tax_of_monthnet_pays.append(net_pay)print("本月累计预扣预缴应纳税所得额:%.2f,本月预扣率%.2f,速算扣除数%d"%(taxable_income,rate,quick_deduction))print("本月累计应纳税额:%.2f,累计已缴税额:%.2f,本月应缴税额%.2f"%(tax_due,tax_paid,tax_of_month))print("本月的应发工资是:%.2f 元"%(net_pay))if i == month:breakelse:i += 1return net_pays,tax_pay_list#===============================================================
if __name__ == "__main__":salary_list = eval(input("请输入你的税前工资序列:"))social_insurance_fund = eval(input("再请输入你的五险一金数或序列:"))social_insurance_addition_fund = eval(input("最后请输入你的专项附加扣除额度:"))cmp = eval(input("是否通过修改五险一金数来对比实际收入差别(是:1,否:0):"))net_pays,tax_pay_list = net_pay_calc(salary_list,social_insurance_fund,social_insurance_addition_fund)if cmp:       social_insurance_fund2 = eval(input("再请输入你的五险一金数:"))net_pays2,tax_pay_list2 = net_pay_calc(salary_list,social_insurance_fund2,social_insurance_addition_fund)print('工资是:%.2f(RMB)'%salary_list[0])print('如果五险一金费用是%.2f,年度总缴税%.2f,月平均工资是%.2f'%(np.mean(social_insurance_fund),tax_pay_list[-1],np.mean(net_pays)))print('如果五险一金费用是%.2f,年度总缴税%.2f,月平均工资是%.2f'%(social_insurance_fund2,tax_pay_list2[-1],np.mean(net_pays2)))fig, (ax0, ax1) = plt.subplots(2, 1, sharex=True)ax0.bar(np.arange(len(salary_list))+1,net_pays, align='center',color='SkyBlue', ecolor='black')
#         ax0.set_xlabel('Month')ax0.set_ylabel('Net Pay(RMB)')ax0.set_ylim(min(net_pays)*0.95,max(net_pays)*1.05)ax0.set_title('Average social_insurance_fund:%.2f'%(np.mean(social_insurance_fund)))
#        ax0.set_title('social_insurance_fund:%d'%social_insurance_fund)ax0.axhline(y=np.mean(net_pays),linestyle='--',color='r')ax02 = ax0.twinx()  # instantiate a second axes that shares the same x-axiscolor = 'tab:green'ax02.set_ylabel('Tax Paid', color=color)  # we already handled the x-label with ax1ax02.plot(np.arange(len(salary_list))+1, tax_pay_list,'*-', color=color,ms=10)ax02.tick_params(axis='y', labelcolor=color)ax1.bar(np.arange(len(salary_list))+1,net_pays2, align='center',color='SkyBlue', ecolor='black')ax1.set_xlabel('Month')ax1.set_ylabel('Net Pay(RMB)')ax1.set_ylim(min(net_pays2)*0.95,max(net_pays2)*1.05)ax1.set_title('Average social_insurance_fund:%.2f'%social_insurance_fund2)ax1.axhline(y=np.mean(net_pays2),linestyle='--',color='r')ax12 = ax1.twinx()  # instantiate a second axes that shares the same x-axiscolor = 'tab:green'ax12.set_ylabel('Tax Paid', color=color)  # we already handled the x-label with ax1ax12.plot(np.arange(len(salary_list))+1, tax_pay_list2,'*-', color=color,ms=10)ax12.tick_params(axis='y', labelcolor=color)   else:print('工资序列是:%s(RMB),\n五险一金费用序列是%s,\n年度总缴税%.2f'%(salary_list,social_insurance_fund,tax_pay_list[-1]))fig, ax0 = plt.subplots()ax0.bar(np.arange(len(salary_list))+1,net_pays, align='center',color='SkyBlue', ecolor='black')ax0.set_xlabel('Month')ax0.set_ylabel('Net Pay(RMB)')ax0.set_ylim(min(net_pays)*0.95,max(net_pays)*1.05)ax0.set_title('Average social_insurance_fund:%.2f'%(np.mean(social_insurance_fund)))ax0.axhline(y=np.mean(net_pays),linestyle='--',color='r')ax02 = ax0.twinx()  # instantiate a second axes that shares the same x-axiscolor = 'tab:green'ax02.set_ylabel('Tax Paid', color=color)  # we already handled the x-label with ax1ax02.plot(np.arange(len(salary_list))+1, tax_pay_list,'*-', color=color,ms=10)ax02.tick_params(axis='y', labelcolor=color)

python计算2019年新个税相关推荐

  1. python个税筹划_2020 新个税算的头疼?会 python,这都不是事儿。

    背景 今年疫情复工后,财务小姐姐给我们普及了 2020 年新个税的算法.. 听完之后的感觉就是:恩,原来是这么回事! 虽然是个小工薪阶级,但是对于扣多少税还是很关心的.于是拿起笔算了算 2 月份的个税 ...

  2. html提交表单使用python计算_教你使用Python实现新个税计算器

    自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 今天跟大家分享下如何计算,希望大家喜欢. 计税方法科普 个税方法 这里需要知道的知识点: 1.个税起征点调到 5000: 2.累积预扣法 ...

  3. 新版个人所得税计算python_2019年新税率工资计算器(python脚本) | linux系统运维...

    #!/usr/bin/evn python # coding=utf-8 # 2019年新税率个人所得税计算器,本脚本仅供学习 # blog: http://www.linuxyw.com # aut ...

  4. python我的所得税计算器_教你使用Python实现新个税计算器

    自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 今天跟大家分享下如何计算,希望大家喜欢. 计税方法科普 个税方法 这里需要知道的知识点: 1.个税起征点调到 5000; 2.累积预扣法 ...

  5. 教你使用Python实现新个税计算器

    自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却 ...

  6. 用计算机怎么计算税率表,5000元新个税计算器公式税率表

    个税起征点已从2018年10月1日开始,由3500元调整为5000元,而且全国统一为5000元. 对于上班族来说,最关心的就是个人所得税了,因为这是关系到自己的利益问题.但是现在,根据最新消息得知,2 ...

  7. Excel数据分析基础(3)-----使用Excel 2019的新函数IFS计算平均值

    今天,我们将介绍如何使用AVERAGEIF()函数来计算"带条件的平均值".顺便,我们还会介绍如何使用Excel 2019中新增的IFS()函数.通过结合起来使用这两个函数,我们就 ...

  8. 2019年杭州个税计算工具excel版

    2019年杭州个税计算工具excel版 附上某云的下载链接和提取码: 链接:https://pan.baidu.com/s/1zknoav-8SinunkuBqs1KcA 提取码:ns0t 好好使用吧 ...

  9. 强行终止python_中国的真实离婚率:一点也不高,反而低的惊人 | 用python计算离婚率...

    3600字. 现在的网络上,似乎普遍有一种共识,那就是中国的离婚率高的吓人. 各种耸人听闻的标题,比如什么"北上广深等一线城市离婚率高达40%"."天津的离婚率高达70% ...

  10. 用python计算圆的面积_用Python计算大圆距

    用python计算圆的面积 The shortest distance between two locations on the surface of Earth (or any planet) is ...

最新文章

  1. 《全球人工智能产业地图》发布(附PPT图片)
  2. 一个有趣的算法问题:如何定义一个分数类
  3. Ribbon-3使用配置文件自定义Ribbon Client
  4. linux命令怎么查看文件时间排序,linux中ls命令按照文件大小排...-ls命令按大小与时间排序文件...-ls按时间排序输出文件列表的实例分析_169IT.COM...
  5. Thinking In Design Pattern——Unit Of Work(工作单元)模式探索
  6. java的类加载器ClassLoader
  7. python软件下载对电脑配置要求-python3批量统计用户电脑配置
  8. 微信jssdk配置的问题,使用MVC制作的demo
  9. 使用ZLIB对datasetProvider.data数据包进行压缩传输的测试
  10. android 电源管理驱动
  11. php__file__用法,PHP 的常量__FILE__的用法图解
  12. VOT-toolkit Python 版本使用教程--官方样例版
  13. 清默网络——动态访问列表
  14. Seatunnel提交任务到Flink集群源码解析
  15. 【深度学习】2-模型在测试集的准确率大于训练集
  16. ReentrantLock源码分析
  17. hdc bind error : The HTTP response from the server [502] did not permit the HTTP upgrade to WebSocke
  18. 交互式SQL(Transact SQL,TSQL)
  19. vray 用于室内渲染的10大技巧,看进来!
  20. 人工智能不止会批改作业,它还在改变“一刀切”的教学模式

热门文章

  1. 联想电脑win11修改默认浏览器的方法
  2. Leetcode no. 347
  3. 利用织梦高级搜索功能 , 来定制身份证驾驶证信息查询系统
  4. 答题系统 html源码,答题系统.html
  5. php唯美博客,24个很酷的PHP开源库
  6. 宁盾堡垒机双因素认证方案
  7. 错误 E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
  8. python实验报告代写_Python 读写CSV作业代写代做、代写Python I/O文件读写程序作业、代写代做python 实验报告...
  9. Unity游戏开发客户端面经——性能优化(初级)
  10. WISP、Client+AP和WDS 区别