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+新華社合作的煥彩專案中的應用。
推薦閱讀
相關文章
- 印度IT 為何這麼發達?《全球“獵身”》告訴你答案
- Python告訴你iPhoneX有多熱賣(附程式碼)PythoniPhone
- 4個理由告訴你Java為何排行第一Java
- 我國ERP應用為何敗多成少(轉)
- 網站安全公司告訴你網站為何會被黑網站
- 用資料告訴你,今年考研上岸有多難!
- 年終總結怎麼寫?用上資料視覺化,年終獎拿到手軟!視覺化
- 資料視覺化告訴你,北京究竟有多熱?視覺化
- 用概念設計告訴你谷歌日曆可以多強大谷歌
- 軟體行業大牛告訴你何謂成功?行業
- 何為Java 中的多型?Java多型
- 索尼PS VR究竟有多火?讓搜尋資料告訴你VR
- 資料告訴你中國跨境電商市場潛力有多巨大
- 【分享貼】辛苦加班了一年,為何年終獎比同級同事少?
- 一元多項式操作
- 這麼多程式語言,為何Python深受喜歡?Python
- 為什麼vivo NEX雙屏版被稱為遊戲神器?多維度體驗測試告訴你答案遊戲
- volatile和synchronized到底啥區別?多圖文講解告訴你synchronized
- 西安達內告訴你企業走物聯網之路好處多
- 這幾組資料告訴你:在手游上女人有多麼專一
- 一文告訴你Java日期時間API到底有多爛JavaAPI
- 三十二張圖告訴你,Jenkins構建Spring Boot 有多簡單~JenkinsSpring Boot
- 發獎了!App Store 又雙叒發“年終獎”了。APP
- 用演算法告訴你為何手機摔落時總是螢幕朝下?演算法
- 兩張圖告訴你Uber如何摧毀計程車行業行業
- 混合多雲第一課——多雲多活為何被稱為“技術皇冠上的明珠”
- 騰訊:兩張圖讓你瞭解蘋果女員工比例到底是多還是少蘋果
- 資料分析告訴你:為啥近5年來Python如此火爆?Python
- 大資料告訴你:為啥近5年來Python如此火爆?大資料Python
- 為什麼用 Java:一個 Python 程式設計師告訴你JavaPython程式設計師
- 我在京東做研發丨【混合多雲第一課】為何多雲多活被稱為“技術皇冠上的明珠”?
- 程式語言那麼多,為何建議學習python呢?Python
- 一元多項式的應用
- 2017年終獎調查出爐 程式設計師年終獎多少你絕對猜不到程式設計師
- 請你告訴我合併兩個陣列,你有多少種方法陣列
- 把視覺化放到年終報告裡,到底有多贊?視覺化
- 走過半個多世紀,計算機圖形學的發展歷程告訴你5毛錢的電影特效究竟多難計算機特效
- 我試圖透過這篇文章告訴你,這行原始碼有多牛逼。原始碼