2022 年終獎個稅計算方法,看看你被多收割了多少

語言: CN / TW / HK

感謝

B 站真的是學習的地方,我看了老師的影片之後,終於搞懂怎麼計算個稅了,上鍊接,和我同樣不懂的小夥伴可以去學習下,省的怕會計給你算錯。

參考 :https://www.bilibili.com/video/BV1v54y1t79i/?spm_id_from=333.788.recommend_more_video.1

年終獎個稅計算

def nzjgs(n):
    """
    :type n: float 年終獎總額
    :rtype: float 年終獎交稅額
    """
    tmp = n/12
    if tmp <= 3000:
        return n * 0.03
    if 3000 < tmp <= 12000:
        return n * 0.1 - 210
    if 12000 < tmp <= 25000:
        return n * 0.2 - 1410
    if 25000 < tmp <= 35000:
        return n * 0.25 - 2660
    if 35000 < tmp <= 55000:
        return n * 0.3 - 4410
    if 55000 < tmp <= 80000:
        return n * 0.35 - 7160
    return n * 0.45 - 15160

如我年終獎假如 4 萬(只是假如),那麼呼叫函式計算之後得到的 3790.0 即為交稅額。

print(nzjgs(40000))
3790.0

月薪個稅計算

def yxgs(n, s, shebao, qitakouchu, zhuanxiangfujiakouchu):
    """
     :type n: float 月份
     :type s: float 月薪
     :type shebao: float 每月社保繳費
     :type qitakouchu: float 每月其他扣除費用
     :type zhuanxiangfujiakouchu: float 每月專項附加扣除
     :rtype: tuple (截止到本月之前的每月交稅列表,本月交稅額, 截止到本月的交稅總額)
     """
    koushui = []
    for i in range(1, n+1):
        total_s = s * i
        total_shebao = shebao * i
        total_zhuanxiangkouchu = qitakouchu * i
        total_5000 = 5000 * i
        total_zhuanxiangfujiakouchu = zhuanxiangfujiakouchu * i
        total_suodee = total_s - total_shebao - total_zhuanxiangkouchu - total_5000 - total_zhuanxiangfujiakouchu
        if total_suodee <= 36000:
            koushui.append(total_suodee * 0.03 - sum(koushui))
        if 36000 < total_suodee <= 144000:
            koushui.append(total_suodee * 0.1 - 2520 - sum(koushui))
        if 144000<total_suodee<=300000:
            koushui.append(total_suodee * 0.2 - 16920 - sum(koushui))
        if 300000<total_suodee<=420000:
            koushui.append(total_suodee * 0.25 - 31920 - sum(koushui))
        if 420000<total_suodee<=660000:
            koushui.append(total_suodee * 0.3 - 52920 - sum(koushui))
        if 660000<total_suodee<=960000:
            koushui.append(total_suodee * 0.35 - 85920 - sum(koushui))
        if 960000<total_suodee:
            koushui.append(total_suodee * 0.45 - 181920 - sum(koushui))
    return koushui, koushui[-1], sum(koushui)

假如我月薪 20000 ,每個月交社保 2025 ,專項附加扣除 0 ,其他扣除費用為 300 ,那麼我第 12 個月的交稅額為 2077.5 :

print(yxgs(12, 20000, 2025, 300, 0))
([380.25, 380.25, 522.0, 1267.5, 1267.5, 1267.5, 1267.5, 1267.5, 1267.5, 1267.5, 1267.5, 2077.5], 2077.5, 13500.0)

總和

假如上面兩部分都是我一年的收入,將上面的兩部分分別計算之後,加起來就是今年一年總共交稅額共 17290.0 ,第 12 個月因為同時拿了工資和年終獎,所以交稅為 5867.5。

2022 年新版年終獎個稅計算

假如我仍然是月薪兩萬,其他扣除費用保持不變,那麼前 11 個月還是和以前一樣,但是從 2022 年開始工資和年終獎都合併計算個稅,所以第 12 個月的交稅肯定包含了平時的月薪和年終獎。這個函式必須套用前面的函式。

def xbnzjgs(nzj, n, shebao, qitakouchu, zhuanxiangfujiakouchu):
    """
     :type nzj: float 年終獎
     :type n: float 月薪
     :type shebao: float 每月社保繳費
     :type qitakouchu: float 每月其他扣除費用
     :type zhuanxiangfujiakouchu: float 每月專項附加扣除
     :rtype: 第 12 個月的交稅額
     """
    p = yxgs(11, n, shebao, qitakouchu, zhuanxiangfujiakouchu)
    total_suodee = nzj + n * 12 - (shebao + qitakouchu + zhuanxiangfujiakouchu + 5000) * 12
    if total_suodee <= 36000:
        return total_suodee * 0.03 - p[2]
    if 36000 < total_suodee <= 144000:
        return total_suodee * 0.1 - 2520 - p[2]
    if 144000<total_suodee<=300000:
        return total_suodee * 0.2 - 16920 - p[2]
    if 300000<total_suodee<=420000:
        return total_suodee * 0.25 - 31920 - p[2]
    if 420000<total_suodee<=660000:
        return total_suodee * 0.3 - 52920 - p[2]
    if 660000<total_suodee<=960000:
        return total_suodee * 0.35 - 85920 - p[2]
    if 960000<total_suodee:
        return total_suodee * 0.45 - 181920 - p[2]

如我平時月薪 2 萬,假如年終獎發了 4 萬,其他仍然保持不變,那麼第 12 個月交稅額為 10077.5 :

print(xbnzjgs(40000, 20000, 2025, 300, 0))
10077.5

可以看出來比之前第 12 個月的總交稅額多了 4210 ,這扣稅真的太狠了,我還能說什麼呢,可能是覺得社會上中產韭菜長高了,得割一波了。

尾記

  • 寫這些函式純屬娛樂,上面的函式實現比較粗糙,請多見諒。
  • 前兩個函式是對的,最後的 2022 年終獎計算方法是我自己推到的演算法,不一定對,歡迎各位指正。