python计算2019年新个税
四月莺飞草长,心情荡漾,清明小长假还有赶在路上的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年新个税相关推荐
- python个税筹划_2020 新个税算的头疼?会 python,这都不是事儿。
背景 今年疫情复工后,财务小姐姐给我们普及了 2020 年新个税的算法.. 听完之后的感觉就是:恩,原来是这么回事! 虽然是个小工薪阶级,但是对于扣多少税还是很关心的.于是拿起笔算了算 2 月份的个税 ...
- html提交表单使用python计算_教你使用Python实现新个税计算器
自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 今天跟大家分享下如何计算,希望大家喜欢. 计税方法科普 个税方法 这里需要知道的知识点: 1.个税起征点调到 5000: 2.累积预扣法 ...
- 新版个人所得税计算python_2019年新税率工资计算器(python脚本) | linux系统运维...
#!/usr/bin/evn python # coding=utf-8 # 2019年新税率个人所得税计算器,本脚本仅供学习 # blog: http://www.linuxyw.com # aut ...
- python我的所得税计算器_教你使用Python实现新个税计算器
自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 今天跟大家分享下如何计算,希望大家喜欢. 计税方法科普 个税方法 这里需要知道的知识点: 1.个税起征点调到 5000; 2.累积预扣法 ...
- 教你使用Python实现新个税计算器
自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却 ...
- 用计算机怎么计算税率表,5000元新个税计算器公式税率表
个税起征点已从2018年10月1日开始,由3500元调整为5000元,而且全国统一为5000元. 对于上班族来说,最关心的就是个人所得税了,因为这是关系到自己的利益问题.但是现在,根据最新消息得知,2 ...
- Excel数据分析基础(3)-----使用Excel 2019的新函数IFS计算平均值
今天,我们将介绍如何使用AVERAGEIF()函数来计算"带条件的平均值".顺便,我们还会介绍如何使用Excel 2019中新增的IFS()函数.通过结合起来使用这两个函数,我们就 ...
- 2019年杭州个税计算工具excel版
2019年杭州个税计算工具excel版 附上某云的下载链接和提取码: 链接:https://pan.baidu.com/s/1zknoav-8SinunkuBqs1KcA 提取码:ns0t 好好使用吧 ...
- 强行终止python_中国的真实离婚率:一点也不高,反而低的惊人 | 用python计算离婚率...
3600字. 现在的网络上,似乎普遍有一种共识,那就是中国的离婚率高的吓人. 各种耸人听闻的标题,比如什么"北上广深等一线城市离婚率高达40%"."天津的离婚率高达70% ...
- 用python计算圆的面积_用Python计算大圆距
用python计算圆的面积 The shortest distance between two locations on the surface of Earth (or any planet) is ...
最新文章
- 《全球人工智能产业地图》发布(附PPT图片)
- 一个有趣的算法问题:如何定义一个分数类
- Ribbon-3使用配置文件自定义Ribbon Client
- linux命令怎么查看文件时间排序,linux中ls命令按照文件大小排...-ls命令按大小与时间排序文件...-ls按时间排序输出文件列表的实例分析_169IT.COM...
- Thinking In Design Pattern——Unit Of Work(工作单元)模式探索
- java的类加载器ClassLoader
- python软件下载对电脑配置要求-python3批量统计用户电脑配置
- 微信jssdk配置的问题,使用MVC制作的demo
- 使用ZLIB对datasetProvider.data数据包进行压缩传输的测试
- android 电源管理驱动
- php__file__用法,PHP 的常量__FILE__的用法图解
- VOT-toolkit Python 版本使用教程--官方样例版
- 清默网络——动态访问列表
- Seatunnel提交任务到Flink集群源码解析
- 【深度学习】2-模型在测试集的准确率大于训练集
- ReentrantLock源码分析
- hdc bind error : The HTTP response from the server [502] did not permit the HTTP upgrade to WebSocke
- 交互式SQL(Transact SQL,TSQL)
- vray 用于室内渲染的10大技巧,看进来!
- 人工智能不止会批改作业,它还在改变“一刀切”的教学模式
热门文章
- 联想电脑win11修改默认浏览器的方法
- Leetcode no. 347
- 利用织梦高级搜索功能 , 来定制身份证驾驶证信息查询系统
- 答题系统 html源码,答题系统.html
- php唯美博客,24个很酷的PHP开源库
- 宁盾堡垒机双因素认证方案
- 错误 E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
- python实验报告代写_Python 读写CSV作业代写代做、代写Python I/O文件读写程序作业、代写代做python 实验报告...
- Unity游戏开发客户端面经——性能优化(初级)
- WISP、Client+AP和WDS 区别