加载中...

2023-2027 如何缴最少的税、拿最多的钱 ?


0x00 前言

根据《中华人民共和国个人所得税法》,自 2019-01-01 起,我国城镇职工个税使用累计预扣法,以 “年” 为周期计算个人所得税(但是按月预扣缴,年度汇总申报清算,多退少补)。而且可以享受专项附加扣除。

另外公布了一项个税优惠政策:自 2022-03-01 起,对符合规定的居民个人全年一次性奖金,可不并入当年综合所得,单独计算纳税,该政策执行至 2027 年底。


好多同学其实不了解这些政策内在的逻辑是什么,一般缴税就是公司扣多少就是多少,没有真正去思考到底这个 “税” 缴得多还是少,听天由命。

但这也难怪,中国个税使用超额累进税率、涉及数十个计算变量、各省市的计算基数不一样、年中甚至会做多次调整,在全球范围内,中国个税的计算复杂度可以列进前 TOP 10:

最近因为接近年底,我为了做年终清算(2023 年),心血来潮做了一个 Excel 用来单纯计算深圳地区的个税,都花了一周的时间,其复杂度可见一斑。

这篇文章主要记录了我在做这个工具时遇到的坑,尽量逐步教大家:

  1. 个税是怎么算出来的
  2. 哪些变量是我们能够合法控制的
  3. 少缴税的操作方法

这个 Excel 工具会在文末提供下载

0x10 薪资结构的潜规则

在各个城市打拼的工薪一族,应该都很熟悉自己工资的构成,基本上包括了:

  • 基本工资
  • 绩效奖金
  • 各种名目的津贴(岗位津贴、保密津贴 …)

基本工资 + 各种乱七八糟的成份 = 月薪。而且往往 基本工资 在其中的占比是最低的,有些企业比较离谱的是基本工资就是所在地区的最低工资。

在职场摸爬滚打了几年的同学应该都很清楚,这是企业为了“合法“地少交五险一金而进行的操作。因为企业报税时,只报员工的基本工资,其他收入都是额外的,这时企业和员工都可以少缴税,但是员工的未来是亏损的,因为公积金、医保、养老的钱都少了非常多。

有些企业还呼吁员工把五险一金调整到最低比例(因为企业交五险一金的比例不能低于员工),这就太黑了。

但是在 2019 年之后,薪资结构已经没有意义了,因为这时是按员工 “全年各类收入” 计算个税(月度计税只是为了配合工资发放、预扣除而已),因此你会发现不少公司已经取消薪资结构、只剩下一项 基本工资 = 月薪

这个税改的意义在于:你的月薪越高、五险一金就可以更放心地把比例拉到最高的上限

因为我国个税是实行超额累进税率的,月薪在 1 ~ 2 万可能还不明显,当月薪超过 3 万之后,税收压力明显增大,这时候五险一金的作用就出来了:它是税前交的

譬如你月薪 3 万,此时有 20% 是必须交出去的,但是你可以选择把这部分尽可能交给社保和公积金,这样等你买房子、看病或养老的时候、还是自己享受,而且五险一金交的越多、你要交的税就越少。但如果你五险一金的缴纳比例太低,20% 纯粹交到国库建设社会,等你老了就没什么退休金可以享受了。

再说得浅白一点,无论你的五险一金缴纳比例是多少,你最终到手的都只有 80% 左右,那为什么不把五险一金的比例拉到最高呢?

0x20 五险一金的计算方式

五险一金包括个人部分和企业部分,本文不涉及企业部分的计算

五险一金计算方式比较简单,都是一个套路: 缴纳基数 x 缴纳比例

这里先给一个计算表格模板供大家参考(全国地区太多,我这里只给出广东省深圳市的,其他地区自行搜索对应公布的数据即可),下面会详细讲解:

2023 深圳市五险一金缴纳基数和比例参考


0x21 地区缴纳基数

从上表看,缴纳基数只看三个变量:

  1. 个人上年度月均工资(税前)
  2. 个人本月工资(税前)
  3. 地区平均工资

前两项比较好理解,这里重点说一下地区平均工资。 所谓的 “地区” 包括了 “省” 和 “市” (养老保险看省,其他看市)。

一般在年中前,各个省和市会公布该地区上年度的平均工资和最低工资(之所以选择年中前公布,是因为每年 6~7 月会开放给个人调整缴纳比例的时间窗口,在 7 月 1 日调整就会生效),取其计算五险一金基数的上下限:

  • 上限 = 平均工资 x 60%
  • 下限 = 平均工资 x 300% (即 3 倍)

特殊情况:

  • 医疗保险 是取上上年度全市的平均工资
  • 工伤保险 和 失业保险 无上下限

譬如 2023 年的基数,就会取 2022 年的平均工资去计算缴纳基数的上下限:

2020 - 2022 广东省平均工资和上下限

2020 - 2022 深圳市最低工资、平均工资和上下限

不难注意到 2021 年有两个上下限,第二个上下限是 2023-10-01 调整的,原因不明,但是 10 月份之后要使用新的上下限

有了上下限之后,就看结合个人工资就可以算出基数了。

譬如这里模拟了一个在深圳工作的人,月薪 2 万、年工资增长为 10% 的工资表:

广东省深圳市 - 示例工资单

要计算这个人在 2023-02 的五险一金的缴纳基数,首先知道他当月工资为 29282.00

然后对比地区上下限:

  • 2022 深圳市上下限: 8238.00 ~ 41190.00 (用于 公积金)
  • 2022 广东省上下限: 5284.20 ~ 26421.00 (用于 养老保险)
  • 2021 深圳市上下限: (用于 医疗保险 和 生育保险)
    • 7778.40 ~ 38892.00 (用于 2023-10 月前)
    • 6123.00 ~ 30615.00 (用于 2023-10 月后)
  • 2022 深圳市最低工资: 2360.00 (用于 失业保险)

故得到这个人在 2023-04 五险一金的缴纳基数如下(理论值):

  • 住房公积金:
    • 因为 8238.00 < 29282.00 < 41190.00 在上下限范围内
    • 所以基数为: 29282.00
  • 养老保险:
    • 因为 29282.00 > 26421.00 大于上限
    • 所以基数为: 26421.00
  • 医疗保险:
    • 因为 7778.40 < 29282.00 < 38892.00 在上下限范围内
    • 所以基数为: 29282.00
  • 生育保险: 同 医疗保险
  • 工伤保险:
    • 无上下限,直接取 2023-04 税前月薪
    • 所以基数为: 29282.00
  • 失业保险:
    • 无上下限,直接取 2022 年深圳市最低工资
    • 所以基数为: 2360.00

但是,假如这个人在 2019-06 的五险一金调整窗口时、申报了当时的基本工资 11000.00,一直到 2023-06 月才重新主动重新调整,那么除了公积金是强制按各类收入总额之外,他在 2023-04 的缴纳基数依然要按照 2019-06 申报的基本工资计算:

  • 住房公积金:
    • 因为 8238.00 < 29282.00 < 41190.00 在上下限范围内
    • 所以基数为: 29282.00
  • 养老保险:
    • 因为 5284.20 < 11000.00 < 26421.00 在上下限范围内
    • 所以基数为: 11000.00
  • 医疗保险:
    • 因为 7778.40 < 11000.00 < 38892.00 在上下限范围内
    • 所以基数为: 11000.00
  • 生育保险: 同 医疗保险
  • 工伤保险:
    • 无上下限,直接取 2023-04 税前月薪
    • 所以基数为: 29282.00
  • 失业保险:
    • 无上下限,直接取 2022 年深圳市最低工资
    • 所以基数为: 2360.00

因此事实上,这个人在 2023 年的不同时间段,有 3 种缴纳基数:

广东省深圳市 - 缴纳基数示例

这里没有展示 2023-10 的计算过程,但是计算方式是一样的,之后的 Excel 表格里面也有计算公式


0x22 地区缴纳比例

缴纳比例是和缴纳基数一起公布的,没什么好说。

个人缴纳上限:

  • 住房公积金: 10%
  • 养老保险: 8%
  • 医疗保险: 2%
  • 生育保险: 0%
  • 工伤保险: 固定值 0
  • 事业保险: 0.30%

用前面得到的缴纳基数,乘以对应的缴纳比例,就是实际上五险一金要交的数额了。

这个比例对调控纳税多寡起到的作用真的不大,有些同学总觉得 “工资多 1 块有可能缴的税就会上升一个梯度,到手的钱可能就少了” 。

这句话是没错,但是你要深究背后的逻辑。我们来分析一下:

首先这句话影响的群体有哪些 ? 只有缴纳比例没有拉到最大的那部分人。因为你缴纳比例已经最大了,多一块少一块就不由得你控制了。

那缴纳比例没有拉满的又是哪部分群体呢 ? 首先我们可以排除月薪 3 万以上的那波人,前面我已经分析过了,对这帮人而言,比例拉到最大性价比是最高的。

那剩下就是月薪小于 3 万的人群了,我们先看一下税率表:

2023 个税累进税率表 - 月表

小于 3 万的,排除掉 5000 那一档(免税),只有两级:

  • 8000: 缴纳 3%
  • 17000: 缴纳 10%

至少都要缴 3% 的税,那担心会升档的,只有满足这些条件的人群:

  • 月收入在 2 万左右
  • 五险一金比例没拉满
  • 缴完五险一金、扣除专项附加后,刚刚剩下 17000

这个概率得多低 … 但如果你中招了。那我觉得你看完这篇文章后,可以把比例调高,就能掉档了,毕竟差了 1190 块钱呢 ~

但我同时建议你把比例拉满,一劳永逸。毕竟你都拿着税后 15000 的工资了,如果当下不怎么缺钱,也该为自己将来打算一下了,毕竟现在少花几百、给自己将来投资点保底的本金也不是什么坏事。


言归正传,我前面说到 “五险一金比例对调控纳税多寡起到的作用真的不大” ,有同学就要问了:“那你这篇文章的主旨不就是教怎么少纳税的吗 ? 现在才说作用不大 ?”

别急,我只是说利用比例调控的作用不大,真正的大头不在这里,容我先卖个关子,文章后面自会解释。毕竟在说明 “大头” 之前,我要先讲清楚个税到底是怎么计算的。

0x30 专项附加扣除的计算方式

截止到 2023 年,目前的专项已经多达 7 项,大部分人都能至少享受到 1 项专项扣除:

  • 子女教育
  • 继续教育
  • 大病医疗
  • 住房贷款利息
  • 住房租金
  • 赡养老人
  • 3 岁以下婴幼儿照护

专项扣除名目一堆,有些同学很难理解是怎么算的。

其实你认为这是 “免征税起点” 的扩充就好了,计算方式也是和免征税起点一样的。

首先,根据 2023 的累进税率月表,每人每月都有 5000 块钱是免税的,那么在最新的累计预扣法下,因为是以 “年” 为周期计算个人所得税的,所以每人每年就有 5000 x 12 = 60000 块钱可以免税。

假如你有 1 项 “赡养老人” 的专项扣除,而且按 2023 年的上限 1500 扣除,那么你每月的免税额度就有 5000 + 1500 = 6500, 全年可免税 6500 x 12 = 78000

每多一项专项扣除,你的免税起点就越高,是不是一下子就很好理解了呢 ?


在这里我特意提到了 “年”,是因为在累计预扣法下,免税的额度是可以在一年中的每个月份随意分摊的,只要 12 个月的总额不变就好。

一般情况下,企业财务可能都是采用月均分摊的方式,方便核账。譬如 “赡养老人”,每个月都平均分摊 1500 。

但事实上,可以这么操作: 一月分摊 0、 二月份分摊 0、 三月份分摊 3000、 四月份分摊 1000 ……

为什么可以这么做呢 ? 累计预扣法每个月只是 “预扣”,实际上是按年为周期的汇缴清算,因此期间每个月怎么分摊都可以,只要分摊的总额不变,最终要缴的税就不会有 1 分钱的变化。

既然没变化,这样做有什么好处呢 ?

其实这种操作一般只能企业报税的时候操作,好处是可以控制员工月度档位,使得就算在累计预扣法下,年初和年底的薪资也不会出现太大差距(毕竟越到年底、累计就越多、升档的可能性就越大)。同时因为控制了档位,员工在年底自主做全年申报的时候,可以避免出现 “多退少补” 的情况,一次性报准,省心。

一般这种操作手法跟员工关系不大,但是如果你要对工资核账,就要清楚你公司的财务有没有进行这种操作,否则就会出现你自己算的月薪和实发月薪不准的问题

0x40 个税的计算方式

前面说了 五险一金、专项附加、免税起征 的计算方式,这几项都是税前扣除的。

接下来我们就能说明怎么算每个月的税后工资了。

0x41 计税周期

前面已经提过很多次了,累计预扣法是以 “年” 为周期计税的,但是这个 “年” 并不是指 1-12 月。

不妨想想,你在 7 月份拿的工资,是你 7 月的劳动所得吗 ? 不是的,那是 6 月份的劳动所得,你 7 月份拿的是 6 月的工资。

因此这个周期实际上是从去年 12 月开始,到今年 11 月结束,所以你 1 月份拿的工资才会是全年最高的,因为 12 月是下一个周期了,累计数额已经清零了。

0x42 个税计算

知道周期从哪个月开始后,还需要知道累进税率表。

税率表不是前面提到的 “月表”, 而是要用这个 “年表” :

2023 个税累进税率表 - 年表

年表能用于每个月计算,也能用于全年汇算,下面直接提供计算公式:

# 1. 说明: 
#   下面提到的【累计】,是指从计税周期开始的月份,一直累计到当下正在计税的这个月
#   例如正在算 4 月份,累计就是从 12 月累计到 4 月份(包括)
#
# 2. 设变量:
#   累计 税前工资 = a
#   累计 其他税前收入 = b
#   累计 五险一金扣除 = c
#   累计 起征点扣除 = d
#   累计 专项附加扣除 = e
#   累计 已预扣预缴税额 = f
#
# 3. 计算:
#   累计预扣预缴应纳税所得额 g = (a + b - c - d - e)
#
# 4. 通过 g 去查 累进税率表 - 年表,得到:
#   预扣率 = h
#   速算扣除数 = i
#
# 5. 计算:
#   当月 个人所得税 j = (g * h - i) - f
#
# 6. 更新:
#   已预扣预缴税额 f' = f + j

这个算法的特点是,当你在算最后一个月的累计值时,其实和你一次性用全年税前所得算出来的值是一样的。这也是为什么累计预扣法可以随意把中间月份的份额分摊到其他月份的原因。

​换言之,企业工资两月一发、半年一发、甚至全年一发,只要不欠薪,在全年数值上的结果都是一样的。

0x43 税后工资计算

这里还是直接提供公式:

# 1. 设变量:
#   当月 税前工资 = k
#   当月 其他税前收入 = l   (年假结转等)
#   当月 五险一金扣除 = m
#   当月 其他税后支出 = n   (考勤罚款等)
#
# 3. 计算:
#   当月 税后工资 o = (k + l - m - j - n)

更具体的计算方式可以获取文末的 Excel 计税工具:

个税计算示例

0x50 奖金独立申报

终于说到本文的重点了,这也是对全年缴税多寡影响最大的因素。

这其实关系到一项个税优惠政策:自 2022-03-01 起,对符合规定的居民个人全年一次性奖金,可不并入当年综合所得,单独计算纳税,该政策执行至 2027 年底。

我们来拆解一下这句话的含义:

  • 全年一次性奖金: 一般指年终奖,但实际上指的就是除了工资以外的收入(例如你中彩票了)
  • 当年综合所得: 一般指全年工资所得,就是我们前面算的所有东西

我们沿用前面举例的那个例子,他在 2023 全年的税前工资为 377736.00,这就是他当年的综合所得。

其中这部分计税为 42809.41,故税后实得 333325.63

现在公司给他发了 30 万年终奖,现在问题是,这 30 万应该怎么计税,他今年才能拿到最多的钱

0x51 年终奖是如何单独计税的 ?

要回答这个问题,我们首先要知道 “年终奖单独计税” 是怎么算的。

我们前面很大篇幅已经知道全年工资是用 “累进税率表 - 年表” 去算出来的,而年终奖单独计税则是要用 “月表” 算的:

2023 个税累进税率表 - 月表

以年终奖 30 万为例,计算个税的方法为:

  1. 算出月均值 300000.00 / 12 = 25000.00
  2. 查看 “累进税率表 - 月表” 对应的档位为:
    • 预扣率: 20%
    • 速算扣除数: 1410.00
  3. 计算 个人所得税: 300000.00 x 20% - 1410.00 = 58590.00
  4. 税后实得: 300000.00 - 58590.00 = 241410.00

0x52 两种选择 ?

回到前面的问题,怎么才能拿到最多的钱呢 ?

有些同学会以为,不就只有两种选择方案吗:

  • 如果把年终奖并入全年计税,全年税前工资变成 377736.00 + 300000.00 = 677736.00,此时个税为 109874.11,全年税后实得 510260.93
  • 如果不并入全年计税,年终奖单独计税为 58590.00,实得奖金 241410.00,全年税后实得 333325.63 + 241410.00 = 529935.63

乍一看,单独计税可以多 1.9 万呢!

但要是真的这么算,你就亏大发了。

0x53 极值

首先你得知道,在企业申报之前,国家是不知道你有多少年终奖的。

换言之,你是可以和 HR 商量好: 今年的年终奖,要划一部分出来单独计税,余下一部分并入全年工资计税

事实上,很多公司,尤其是大厂的薪资系统也会提供自助的方式、让员工自主选择单独计税的比例份额,这么做完全是合法合规的

现在问题变成了: 要划多大一部分出来单独计税,才能使得全年税后实得最大化 ?

其实这已经变成了一个数学上极值的问题了:

前面选择全部并入计税、或者全部单独计税,只是求了两个 “端点” 的值,但端点值不一定是全局最大值。

我们要找到全局最大值,首先要找到所有极值和端点值(因为这些值都落在边界),从中去找到最大值。

因为我国使用累进税率表去分段计税,所以数学模型实质上是一个分段函数;而参考个税的计算方式,每个分段内都是 y = kx + b 的形式(只有一次幂),说明分段内不会存在拐点,即极值只可能出现在分段端点处

因此,我们只需要:

  1. 计算 “累进税率表 - 月表” 每个档位的最大值 x 12 后,有多少落在年终奖范围内(<=),这些就是候选的单独份额
  2. 份额为 “0” 和 “所有” 也作为候选的份额
  3. 计算每一种份额下,全年税后实得是多少(求极值)
  4. 比对这些极值,找出最大值,就是全局最优的单独计税份额

以刚刚的例子操作一遍:

  1. 计算 “累进税率表 - 月表” 每个档位的最大值 x 12 :
    • 5000 档: x 12 = 60000
    • 8000 档: x 12 = 96000
    • 17000 档: x 12 = 204000
    • 其他档位: 超过 30 万年终奖范围,排除
  2. 0 和所有年终奖 300000也作为候选的份额
  3. 计算每一种份额下,全年税后实得是多少:
    • 单独计税 0 : 全年税后实得 510260.93
    • 单独计税 60000 : 全年税后实得 528260.93
    • 单独计税 96000 : 全年税后实得 536180.93
    • 单独计税 204000 : 全年税后实得 547203.28
    • 单独计税 300000 : 全年税后实得 529935.63
  4. 不难发现单独计税份额选择 204000,税后到手的金额最多 547203.28 (比全部单独计税还要多 1.8 万)

顺便一提,204000 划分到单独计税后,剩下的 96000 就会并入全年和薪资一起计税。

但是具体并入到哪个月随工资发放、或者有些公司会拆成几部分发放,都是没有任何影响的,在累计预扣法下,只要确保全年总额一样,都是一样的。

Excel 的示例是全部并入了 4 月份

0xE0 个税计算器下载(2027 前有效)

前面叙述的计算过程已经浓缩到我做的这个 Excel 个税计算器里面,大家可以按需下载使用:

0xF0 相关资料


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
「Gym 课程笔记 02」经典控制 - Acrobot 杂技机器人 「Gym 课程笔记 02」经典控制 - Acrobot 杂技机器人
Acrobot 是一个双节摆问题,它研究的是,如何仅通过控制第一个摆杆与第二个摆杆之间的联接点的扭矩、使得第二个摆杆在要求的步数之内达到一定高度。
2023-12-12
下一篇 
「Gym 课程笔记 01」环境搭建与基本概念 「Gym 课程笔记 01」环境搭建与基本概念
Gymnasium 是 OpenAI Gym 库的一个维护分支,它定义强化学习环境的标准 API,提供了一系列已经构建好的 RL 问题的标准环境,无需过多操心交互问题、只需要关注强化学习算法本身,故适合 RL 入门学习使用。
2023-12-04
  目录