Python告诉你:为何年终奖多发一元,到手却少两千多?
作者 | shenzhongqiang
来源 | Python数据与分析(ID:ML_Python)
年终奖多发一元,到手却要少两千多,甚至更多。听到这个消息的时候,大家是不是觉得有点意外,意外之余还有点淡淡的忧伤?
上了这么多年班,我也是最近才搞清楚年终奖的税是怎么算的。年终奖的税和工资税的最大区别就是,年终奖没有阶梯税率,没有阶梯税率,没有阶梯税率,重要的事情说三遍。
具体怎么算,我们来看下面的公式。
税率和速算扣除数按照税率表,最新的税率表如下。
我们假设一个人的年终奖是30000元,因为没超过36000元,查上表得到税率3%,速算扣除数是0,因此他要交的税是30000 * 3% - 0 = 900元 。
如果一个人的年终奖是120000元,因为在36000元~144000元的区间内,查上表得到税率10%,速算扣除数210,所以他要交的税是120000 * 10% - 210 = 11790元 。
基于年终奖税的计算方式,我们用Python实现了一个算税的函数。代码如下。
import bisect
import numpy as np
import matplotlib.pyplot as plt
def bonus_tax(bonus):
ranges = [0, 36000, 144000, 300000, 420000, 660000, 960000]
deducts = [0, 210, 1410, 2660, 4410, 7160, 15160]
rate = [0.03, 0.1, 0.2, 0.25, 0.3, 0.35, 0.45]
i = bisect.bisect_left(ranges, bonus)
tax = bonus * rate[i-1] - deducts[i-1]
return tax
上面的bonus_tax函数就是算税的函数,它接受一个参数bonus,就是我们的年终奖。
我们用这个函数来算一下,从1000元到1000000元区间内所有年终奖的税各是多少。具体代码如下。
if __name__ == "__main__":
bonuses = range(10000, 1000000, 1)
taxes = []
net_incomes = []
for bonus in bonuses:
tax = bonus_tax(bonus)
taxes.append(tax)
net_incomes.append(bonus-tax)
plt.plot(bonuses, net_incomes)
plt.show()
这段程序的末尾会将税后年终奖和税前年终奖的关系制作成一张折线图,展现出来,如下。
横轴是税前的年终奖,纵轴是税后拿到手的收入。可以看到上图中税后到手的收入和税前年终奖并不是呈现单调递增的关系,在几个节点上会出现突然的下跌,也就是说税前年终奖虽然增加了,但税后到手的收入却减少了。
这是为什么呢?
我们注意到这些突然的下跌都是出现在跨税档的边界上。比如36000元的年终奖,需要交的税是36000 * 3% - 0 = 1080元 ,但36001元的年终奖,就需要交36001 * 10% - 210 = 3390元 的税,年终奖增加一元,收入反而减少了。同样的问题也出现在144000元、300000元、420000元、660000元、960000元这些年终奖上。在这些跨税档的边界上,年终奖虽然增加了,但因为跨了税档,税率提高了,导致税后所得反而减少了。
出现这个问题的根本原因,还是在于年终奖的计税存在一个漏洞。年终奖计税的税率是基于工资税的税率表,工资税的税率表上收入额这一栏是月收入,而上面的表格里的收入额是年收入,收入额乘以了12,但速算扣除数没有,这就导致跨税档的时候会出现收入突然下跌。
如果我们把上面表格中的速算扣除数都乘以12,再画一下税后年终奖和税前年终奖的关系图,可以得到下面的图。
这张图就正常多了,图上没有突然下跌的断层,税后年终奖和税前年终奖呈现单调递增的关系。
看到这里,大家是不是理解了年终奖的计税方式了呢?祝大家都能避开跨税档的陷阱~
(本文为Python大本营投稿文章,转载请联系作者。)
◆
公开课预告
◆
如何用AI技术为黑白老照片上色?本次公开课中,百度高级研发工程师李超将讲述对抗生成网络相关,学术界的研究现状和应用场景,以及GAN在百度视觉+百度PR+新华社合作的焕彩项目中的应用。
推荐阅读
AI找Bug,一键快速预测
春节停车难?用Python找空车位
Python告诉你:为何年终奖多发一元,到手却少两千多?
送你一份春节看片攻略~
原子互换:一统公链江湖的神来之笔
春晚鬼畜 B 站日排行最高,赵本山:我的时代还没有结束!
“离开360时,它只给了我一块钱”
5G大规模商用来临之前,你必须知道的几个知识点
女程序员:我敲代码养家,老公负责貌美如花!
相关文章:

[译]一个系统管理员眼中的DevOps
前言 原文发表在Patrick Debois大神的官网上,传送门>> 通篇围绕运维工作进行阐述,始终是在强调运维人员和开发人员需要通力协作,这大概也是DevOps理念的核心价值所在吧!大概是因为作者来自比利时吧!翻译的时候还…
linux驱动:音频驱动(六)ASoc之codec设备
linux驱动:音频驱动(六)ASoc之codec设备

屏蔽“网页上有错误”提示,屏蔽java script 错误的代码
<script>window.onerrorhide_error_message;functionhide_error_message(){returntrue;}</script>代码再简写一点,就是: <script type"text/java script ">window.onerrorfunction(){returntrue;}</script >原来只要让…

linux驱动:音频驱动(七)交叉编译alsa库及工具集alsa-utils
0、编译时用到的库 libunistring0_0.9.3-5_i386.deb libgettextpo0_0.18.1.1-5ubuntu3_i386.deb gettext_0.18.1.1-5ubuntu3_i386.deb 1、下载源码 alsa-lib-1.0.27.tar.bz2 alsa-utils-1.0.27.2.tar.bz2 一、交叉编译alsa lib 1、su 进入root用户 2、进入/home/MY/evm-lin…

Python一键转Java?“Google翻译”你别闹
作者 | 若名出品 | AI科技大本营(ID:rgznai100)近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热议。图片显示,Google 翻译中添加了编程语言进行…

我所感兴趣的iOS10新特性
###SiriKit Siri API 的开放自然是 iOS 10 SDK 中最激动人心也是亮眼的特性。SiriKit 为我们提供一全套从语音识别到代码处理,最后向用户展示结果的流程。Apple 加入了一套全新的框架 Intents.framework 来表示 Siri 获取并解析的结果。你的应用需要提供一些关键字表…

如何将三万行代码从Flow移植到TypeScript?
作者 | David Gomes译者 | 弯月责编 | 郭芮来源 | CSDN(ID:CSDNnews)【编者按】在内存安全中,类型安全是很重要的一个命题。为了确保JavaScript项目运行的类型安全,本文的作者介绍了2016年时使用Flow的经历࿱…

CRM——插件流程回顾
1. Django项目启动 自动加载文件 制作启动文件1. 注册strak 在apps.py 类里面增加如下 def ready(self):from django.utils.module_loading import autodiscover_modulesautodiscover_modules("stark")2. 在已经注册的app中创建stark.py文件 加载2. 在stark中模仿Adm…
Linux驱动:TI达芬奇系列kernel中cup类型的判断,以cpu_is_ti81xx()为例
cpu_is_ti81xx() 为真 cpu.h (arch\arm\plat-omap\include\plat) 1、 # define cpu_is_ti81xx() is_ti81xx() # define cpu_is_ti814x() is_ti814x() 2、 #define IS_TI_CLASS(class, id) \ static inline int is…

IT人请注意你的身体![转]
IT人请注意你的身体![转]IT一直是很多人的梦想,外行的无数人挤破了脑袋想进这个圈子,在一般人看来,他们是时代的宠儿,他们可以不修边幅,他们工作时间可以身着便装,他们可以不受早九晚五的束缚,他…

WF4.0实战(六):控制WPF动画
这个例子改造了王晓冬老师的:用WF流程控制WPF动画。 本文用一个小例子演示了在WF中定义两个操作步骤,用来控制WPF页面元素的动画。王冬老师当时使用的是WF3.0,现在我改成WF4.0。 先看效果: 活动: 流程: 实现:实现很简单…

嵌入式学习:存储器总结
1、nor flash:NOR采用的并行接口,其特点读取的速度比之NAND快乐很多倍,其程序可以直接在NOR里面运行。但是它的擦除速度比较慢,集成度低,成本高的。现在的NOR的容量一般在2M左右,一般是用在代码量小的嵌入式…

10门必看的机器学习免费课程
整理 | 琥珀出品 | AI科技大本营(ID: rgznai100)文本将介绍来自全球10所著名学府的机器学习和数据科学领域的免费公开课程,范围涉及从入门机器学习到自然语言处理等。1、机器学习华盛顿大学链接:https://courses.cs.washington.ed…

golang实现给图片加水印
2019独角兽企业重金招聘Python工程师标准>>> 最近跟在写golang图片加水印的方法,这里用的是一些基本的功能。 package mainimport ("fmt""image""image/draw""image/jpeg""image/png""os" …

编译android不再需要jdk1.5
2019独角兽企业重金招聘Python工程师标准>>> 今天编译Android的时候发现jdk不是1.5都可以通过。 转载于:https://my.oschina.net/zengsai/blog/4103

来自程序员的福利!用Python做一款翻译软件
来源 | Ahab杂货铺(ID:PythonLearningCamp)前两天吃了平哥的一波狗粮,他给女朋友写了一个翻译软件,自己真真切切的感受到了程序员的浪漫。在学习requests请求的时候做过类似的Demo,给百度翻译发送一个post请…

海思3536:osdrv编译过程中报错及解决方法
1、安装交叉编译工具 1.1 cd toolchain/arm-hisiv300-linux/ 1.2 tar -xvf arm-hisiv300-linux.tar.bz2 1.3 修改cross.install:使用bash 1.4 sudo ./cross.instal 1.5 执行source /etc/profile, 安装交叉编译器的脚本配置的环境变量就可以生效了 2…

Vmware linux 无法上网
流程如下: 1)点击 VM->Settings Hardware选项卡下面 2)点击Network Adapter 设置如下图所示,首先我们在虚拟机中将网络配置设置成NAT, 3、进入Windows操作系统,然后右键点击我们的电脑,进入到管理界面 …

编程25年后,现实将我打回菜鸟程序员的起点
在从事了 25 年的编程工作后,我却发现自己没有什么具体的东西可以展示给大家。我需要克服完美主义思想和对被批评的恐惧,向大家展示真实的自己。作者 | DeChamp译者 | 苏本如责编 | 仲培艺出品 | CSDN(ID:CSDNNews)下面…

MOSS 2010:Visual Studio 2010开发体验(14)——列表开发之事件接收器
通过前面几篇,我们已经完成了内容类型,列表定义,列表实例的开发。本篇继续讲解列表中的一个重要环节——事件接收器开发。 我们的场景是:我希望之前做好的订单列表这个内容类型自动地具有某些事件特征,例如当用户在添加…

海思3536:kernel编译和mpp_single编译过程报错及解决方法
### 1、编译kernel 1.1 cd kernel/linux-3.10.y 1.2 cp arch/arm/configs/hi3536_full_defconfig.config 1.3 make ARCHarmCROSS_COMPILEarm-hisiv300-linux- menuconfig 1.4 make ARCHarmCROSS_COMPILEarm-hisiv300-linux- uImage 1.4.1 弹出选择板子型号:39&…

026——VUE中事件修饰符之使用$event与$prevent修饰符操作表单
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>事件修饰符之使用$event与$prevent修饰符操作表单</title><script src"vue.js"></script> </head> <body> &…

Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头、注释、变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提。1. Linux 脚本编写基础◆1.1 语法基本…

海思3536:PC客户端编译过程报错及解决方法
1、Hi3536V100R001C02SPC040版本编译出错 --------- 错误 4 error LNK2001: 无法解析的外部符号 _IveOpenFile D:\share\Hi3536V100R001C02SPC040\01.software\pc\IVE_CLIB\HiIVE_PC_V2.0.0.7\sample\ive_samples_2.0\Integ\ive_clib_2.0.lib(ive_clib.obj) 错误 5 error LNK20…

百度15篇论文被AAAI 2019收录
1月27日,第33届 AAAI(AAAI 2019)在美国夏威夷召开,其中百度共有15篇论文被收录。AAAI于1979年成立,是国际人工智能领域的顶级国际会议。这一协会如今在全球已有超过6000名的会员,汇集了全球最顶尖的人工智能…

使用 xcworkspace 管理 iOS 工程
首先创建目标工程 创建工作空间xcworkspace文件,并将创建的*.xcworkspace文件放到刚创建的目标工程同级目录下 关闭刚刚创建的目标工程,打开*.xcworkspace文件,把刚刚创建的目标工程添加到工作空间中来 如果要添加一些框架,则将目…

Windows 2008 部署服务之Windows 7 应答文件创建
——————————————————————————————Windows 2008 部署服务八步走:1、Windows 2008 部署服务之WDS概述 2、Windows 2008 部署服务之WDS安装及配置 3、Windows 2008 部署服务之添加启动映像 4、Windows 2008 部署服务之Windows XP应答文件…

DotNetCore跨平台~System.DrawingCore部署Linux需要注意的
回到目录 你在windows上使用图像组件没有任务问题,但部署到linux之后,将注意以下几点: 安装nuget包ZKWeb.System.Drawing项目里还是引用System.DrawingCore,这点不用改安装gdiplus插件,这个需要根据linux类型不同&…

iPhone曝严重漏洞,用户接听FaceTime前或被“监听”!
作者 | 琥珀 出品 | AI科技大本营(ID: rgznai100) 近日,据 9to5Mac 等多家外媒报道,苹果手机 FaceTime 一项重大漏洞被曝光,该漏洞可以让用户通过 FaceTime 群聊功能(Group FaceTime)打电话给任…

海思3536:交叉编译Qt4.8.4
一、交叉编译qt 1、下载Qt源码包qt-everywhere-opensource-src-4.8.4.tar.gz; 2、解压Qt源码包tar -xvfzqt-everywhere-opensource-src-4.8.4.tar.gz 3、创建qmake.conf 3.1在qt-everywhere-opensource-src-4.8.4/mkspecs/qws/下创建linux-hisiv400-g++; 3.2将qt-everyw…