前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python告诉你:为何年终奖多发一元,到手却少两千多?

Python告诉你:为何年终奖多发一元,到手却少两千多?

作者头像
AI科技大本营
发布2019-05-06 10:38:09
5490
发布2019-05-06 10:38:09
举报
文章被收录于专栏:AI科技大本营的专栏

作者 | shenzhongqiang

来源 | Python数据与分析(ID:ML_Python)

年终奖多发一元,到手却要少两千多,甚至更多。听到这个消息的时候,大家是不是觉得有点意外,意外之余还有点淡淡的忧伤?

上了这么多年班,我也是最近才搞清楚年终奖的税是怎么算的。年终奖的税和工资税的最大区别就是,年终奖没有阶梯税率,没有阶梯税率,没有阶梯税率,重要的事情说三遍。

具体怎么算,我们来看下面的公式。

税率和速算扣除数按照税率表,最新的税率表如下。

我们假设一个人的年终奖是30000元,因为没超过36000元,查上表得到税率3%,速算扣除数是0,因此他要交的税是30000 * 3% - 0 = 900元 。

如果一个人的年终奖是120000元,因为在36000元~144000元的区间内,查上表得到税率10%,速算扣除数210,所以他要交的税是120000 * 10% - 210 = 11790元 。

基于年终奖税的计算方式,我们用Python实现了一个算税的函数。代码如下。

代码语言:javascript
复制
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元区间内所有年终奖的税各是多少。具体代码如下。

代码语言:javascript
复制
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大本营投稿文章,转载请联系作者。)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档