今天才知道年终奖一次性计税的惊天 bug

2024-02-02 20:05:33 +08:00
 unt
36100 拿到手比 36000 少,请问大家真的是这样吗,上小学时的一道数学题成了现实了。
24789 次点击
所在节点    职场话题
170 条回复
106npo
2024-02-04 12:49:50 +08:00
@nothingistrue 觉得不优惠就直接合并呗( 19 年以前合并到发放奖金的月份)
106npo
2024-02-04 13:15:12 +08:00
@PrinceofInj
其实他要是叫扣除数就没争议了,扣除数税务局定下来是多少那就是多少,它是税的本身算法.
但税务局现在把他叫速算扣除数,速算扣除数应当只是为了方便计算产生的,然而 国税发〔 2005 〕 9 号 的速算扣除数其实就是税的本身算法,并没有替代另一个计算方式.
现行的 财政部 税务总局公告 2023 年第 30 号 依旧叫 速算扣除数
GuuJiang
2024-02-04 13:22:23 +08:00
@PrinceofInj 这个帖子里很多人都没有真正理解速算扣除数到底是怎么来的,我来用小学数学知识从头推导一遍吧,首先说月薪,把前几档的税率列出来如下
(0, 3000): 3%
(3000, 12000): 10%
(12000, 25000): 20%
...
假设工资在(3000, 12000)之间,那么依据上面的税率,计算公式为
(3000 * 3%) + (x - 3000) * 10%
化简一下可以得到
90 + x * 10% - 300 = x * 10% - 210
这就是第二档中的速算扣除数 210
同理假设在(12000, 25000)之间,那么依据上面的税率,计算公式为
(3000 * 3%) + (9000 * 10%) + (x - 12000) * 20%
= 90 + 900 + x * 20% - 2400
= x * 20% - 1410
得到了第三档的速算扣除数 1410
其他的依此类推
所以说 210 、1410 这些数并不是凭空冒出来的,也不是拍脑袋想出来的,真正的本质是阶梯税率,在按照阶梯税率计算的过程中对一些常数部分进行化简得到的结果,脱离了原本的分段点和税率,这些数没有任何特殊的含义
而到了年终奖这里,分段点变成了 36000 、144000 等,但仍然机械地照搬了 210 、1414 这一组速算扣除数,导致了最终的这个畸形的结果
GuuJiang
2024-02-04 13:37:12 +08:00
简单总结就是,对于政策制定者,需要提供的信息是:税率各档分界点在哪里,以及每一档的税率是多少,这就是制定一个阶梯税率政策所需要的全部信息,至于速算扣除数,是完全由前两个信息决定的,就算不直接写进政策里,实际操作的人自己也能推导出来,这个数是不能独立存在的,也就是说这里看似有 3 个参数,实际上只有 2 个
而到了年终奖这里,却离谱地直接给出了分界点和速算扣除数两个参数,并且速算扣除数还是从另一份表格里搬过来的,最终导致了产生的结果并不是一个合理的阶梯税率,反而成了一个奇怪的锯齿状函数
mschultz
2024-02-04 13:58:04 +08:00
@GuuJiang #83 😂 所以 @xmumiffy #82 楼认为如果直接叫「扣除数」,去掉「速算」两个字就没争议了。

翻译:我税务总局想扣除多少,你只有遵守的份。我们对年终奖本来实行的就是「全额累进税率」外加固定数额优惠的制度,并不是「超额累进税率」!那个扣除数是全额累进税率各级税率下的固定数额优惠!

但是这个解释仍然牵强。

====
首先,全额累进税率与公众认知、现行税法的精神都不相符。现行个税法对个税实行的是超额累进税率。

其次,如果只是为算法中一个参数改个名字,宣布这是硬性规定的常数 —— 并不能解决税后到手金额跳变的问题,这才是最容易引发争议的点。

再次,如果说这个常数就是算法本身,是个固定数额的优惠钱数,**不是**其他计算方式(即差额累进税率)的简便替代,那为啥偏偏选个「一眼就能看出是差额累进税率月度速算扣除数,仔细一看计算过程又发现在乱用」的数值?咋不选 100 ,200 ,500 这些整的?最后还是只能解释为拍脑袋。
GuuJiang
2024-02-04 14:06:24 +08:00
@mcluyu 因为文件里有三个不同的表格
第一个是《收入按月计算》,也就是适用于广大打工人的,给出了分界点、各档税率和速算扣除数三列,分界点为 3000 、12000 等,速算扣除数为 210 、1410
第二个是《收入按年计算》,适用于劳务报酬等非按月的收入,同样包含三列,分界点为 36000 、144000 等,速算扣除数为 2520 、16920 等等,你看到的应该就是这个表格,其实这恰恰就证明了这种情况下的速算扣除数本来就应该乘以 12
而年终奖是第三种计算方法,只给出了分界点和速算扣除数,分界点为 3000 、12000 等,速算扣除数却是 210 、1440 等,等于抄作业各抄了一半

其实去查一下更多的历史文件就会发现,历史上税率曾经调整过,而每一次的税率更新都会伴随着速算扣除数的更新,并且都是和我前面说的推导过程是吻合的,这也证明了早期政策制定者的本意就是规定区间和税率,同时顺带给出速算扣除数,结果后面抄作业的人把这个大前提给丢掉了,直接抄了速算扣除数,大概就相当于小 A 写了一个计算阶梯税率的函数,先是按原始公式计算的,后面进行了优化,提取出了速算扣除数,而小 B 在照抄这个函数时把它当成了原始的公式,于是只修改了分段点,却没有相应地去修改这些看不懂的 MAGIC NUMBER
chairuosen
2024-02-04 14:08:35 +08:00
发的多拿的少就是 BUG ,在数学的世界里没有权威。
cmdOptionKana
2024-02-04 14:10:30 +08:00
@rrfeng

> 我给你优惠,但是你要跟我学算 1+1 = 3 才行。

假设顾客拿了一瓶水 1 元,和一个面包 2 元,结帐。

老板说:水和面包搭配,优惠价,收你 2.5 元。

顾客说:1 + 2 等于 3 ,老板你数学错了

老板说:我说了,是给你优惠。

顾客说:你强调优惠能掩盖你的错误吗?你给我优惠,但是要我跟你学 1 + 2 = 2.5 才行,你这是侮辱我的小学数学知识!
cmdOptionKana
2024-02-04 14:12:16 +08:00
@chairuosen 两个商品同时结帐,给优惠价;同样是这两个商品单独结帐,没有优惠;买同样的东西,结帐方式不同,导致最后金额不相同,是数学 bug 吗?
chairuosen
2024-02-04 14:15:10 +08:00
@cmdOptionKana 你这不是杠精么。自己编一个场景来反驳,你这是数学问题么?
cmdOptionKana
2024-02-04 14:20:47 +08:00
@chairuosen 原来你也知道不是数学问题。

什么是数学问题,公式本身有问题。

什么不是数学问题,给出两个公式,两个公式都没问题,两个公式的计算结果不同而已。

现在原本讨论的计税问题,是公式本身的问题吗?是提出两个公式的那个提出者声称这两个公式的计算结果应该一样吗?

不是,事实是什么,事实是提出两个公式的那个提出者已经说了两个公式的结果可以不一样,其中一个是优惠价。这是数学问题?
chairuosen
2024-02-04 14:22:06 +08:00
@cmdOptionKana 当然是公式的问题啊,上面不是一直在讨论公式里的速算扣除表是错的么?你在看什么?
cmdOptionKana
2024-02-04 14:26:33 +08:00
@chairuosen 你说它错,前提是 “提出者宣称速算与不速算的结果应该一致”,人家本来就没说应该一致,错在哪里?
chairuosen
2024-02-04 14:28:02 +08:00
@cmdOptionKana 我用你自己的方法来反驳你:
老板:你这两个东西一共 10 块钱,可以分开结,也可以一起结,一起结给你 5 折优惠怎么样。
顾客:可以啊,一起结吧。
老板:付款 6 块吧。
顾客:不是 5 折么?你算错了吧。
老板:没算错,要么 10 块要么 6 块,你要不要吧
cmdOptionKana
2024-02-04 14:31:19 +08:00
@chairuosen 说死了折扣,就按宣称折扣算。如果没有说死折扣率呢?

我就抛给你两个公式,你自己算,两个结果我都同意结帐,你可以自己选择其中一个公式。这里有什么数学错误?
chairuosen
2024-02-04 14:32:35 +08:00
@cmdOptionKana 两个选项并不是“速算”与不"速算",只有两个选项是“一次性”和“12 个月均摊”这是两个算法,不放在一起讨论。政策是二选一,本次讨论的是“一次性”这个算法的分段函数计算问题。这个分段函数每一个线段,应该是收尾相连的,但是这里的公式错误,导致分段函数断开了
chairuosen
2024-02-04 14:33:50 +08:00
@chairuosen 首尾相连的意义在于,在临界点,采用上一个分段的算法,和下一个分段的算法计算出的金额是一样的。
cmdOptionKana
2024-02-04 14:41:51 +08:00
@chairuosen

我提供给你一个函数。
你希望计算结果是首位相连的。
但我有没有说过,我这个函数,它的计算结果是首尾相连的?我没说过。

好,现在我这个函数,算出来发现,没有首尾相连。我错了吗?错在哪里?

注意,首尾相连这个要求,是你希望,不是我的承诺。我没有说过它是一个首尾相连的分段函数,这我没有说过吧?
chairuosen
2024-02-04 14:44:19 +08:00
@cmdOptionKana
OK ,确实是你说的样子。
但这个东西,在专业领域,都是首尾相连的,你在历史上给的其他公式,也都是首尾相连的,就这一个不是。那你说是哪里的问题。
你非这样说,只要他不承认错,那就不是错呗?
chairuosen
2024-02-04 14:45:40 +08:00
我给你个折扣 10 块钱打 5 折是 6 块,我不管,我没承诺你 10x0.5=5 ,我就是对的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1013749

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX