新一年的退税又开始了, 到下周四(3月21日)就可以无需预约直接在 app 上办理了, 祝大家能多退点钱。
我不希望自己只是被稀里糊涂的退了一笔钱, 在研究了税法的前因后果后, 才写出了这么一篇文章。
在 2019 年税改前, 老的税法从1980年开始已经实行四十年了。每一年都被吐嘈, 但是每一年都没改。就像是一段四十年没改过的代码, 历史包袱太重。即使大家都知道里面有很多 bug, 也没人敢动。因为在修复问题的同时, 还要保证良好的兼容性。
对程序员来说, 理解一样东西最好的方法就是把这个东西重新做一篇(黑话 "re-engineering")。让我们回到2019年, 看看那时候老税法的问题和修复方案, 就会彻底明白:
- 为什么每个月的税越交越多?
- 为什么每年要汇算清缴?
四十年的祖传代码: 2019年以前的税法
先上线再说
本着 "先上线再说" 的精神, 从 1980 年开始我国就开始执行了一个很简单的税收方案。
如何保证政策落地呢? 一家一户收显然是非常麻烦的, 很容易遗漏。所以选择让企业帮员工统一代缴, 在发工资前就给你扣了, 看你还怎么溜。这样政府只要看牢几个大企业就行了, 非常好落地。随之而来的, 工人阶级也成为了我国税收的主力军, 所以有人又称之为 "工薪税" 。
如何保证公平呢? 个税在国外又叫 "罗宾逊税" , 罗宾逊是英国文学上著名的劫富济贫的好汉, 其实就是 "劫富济贫税"。个税的一个重要目标就是缩小收入差距。所以要对穷人少收, 富人多收。于是采用了 "累进税率法" , 就是将你的税收进行分段, 处于越高段位的收入, 税率越高。 2019 年之前的累进税率表如下
假如我2017年3月的收入是 14600, 那我应该纳税多少钱呢? 首先当时每个月有统一的税前扣除 5000, 所以我的应纳税所得额只有 9600:
- 不超过 1500 的部分按照 3% 纳税:
1500*0.03=45
- 1500-4500 部分按照 10% 纳税:
3000*0.1=300
- 4500-9000 部分按照 20% 纳税:
4500*0.2=900
- 超过 9000 部分按照 25%:
600*0.25=150
- 总计纳税:
45+300+900+150=1395
不过这个算法可以用 "速算扣除数" 优化下, 只要乘以应纳税所得额对应的税率再减去速算扣除数就可以了: 9600*0.25-1005=1395
。可以看到结果和上面是一模一样的。
1980 出台方案非常简单, 就是 每个月收入减去统一的税前扣除后, 再按照累进税率缴纳。
上线遇到了两个小bug
匆匆上线的系统必然有客户反馈 bug, 程序还比较好改, 税法可就难了啊。
首先是不同地方面临的生活成本不同, 上海, 深圳, 北京的物价和西安, 长沙能一样吗? 每个人的生活压力也不同, 有的人上有老, 下有小;而有的人单身汉, 自由快活。统一都用5000元的税前扣除, 是不是不太合适?
其次是更加难解的公平性问题。税法隐含的假设是, 大家每个月的盈利都是很稳定的。虽然对程序员来说确实如此, 但是还有很多行业的周期波动很大, 比如旅游业, 商场百货, 临时工等等, 俗称 "三年不开张, 开张吃三年"。他们的年收入未必有程序员高, 但是却因为某个月的收入很多, 到头来交的税反而更多, 就起不到 "劫富济贫" 的效果了。
第一个补丁: 累计预扣
既然客户反馈了 bug, 那掌管"国家程序"的"超级程序员"们当然就要修复。
先来思考最朴素的修复方案。既然有的人月度收入波动有点大, 那年度收入总是稳定了的吧。那我们可以直接在每一年底, 按照年度收入, 计算累进税率来收税。
虽然能解决问题,但是既然改的是老代码, 得考虑下兼容性。之前是按月收取, 如果突然改成按年收税, 政府每个月的开支咋办? 原本按月收, 每个月交的税不会很多, 按年收入的话就需要一次性收一大笔钱, 可能有的企业就周转不过来了。
所以最后还是得按月收。但是我们还是可以按年度累计收入来计算累进税, 每个月只需要缴纳其中的增量部分 。这种方法就叫做 "累计预扣" 。
最新税法的累进税率表如下:
假设我一月份应纳税所得 30000 元, 二月份应纳税所得 100000 元, 三月份应纳税所得也是 100000 元, 那么每个月的税额计算如下:
- 一月份累计收入 30000, 直达到第 1 级, 纳税
30000*0.03=900
元 - 二月份累计收入 130000, 达到了第 2 级。我们按照 2 级计算完毕后, 再减去之前的累计纳税, 即是本月的纳税额:
130000*0.1-2520-900=9580
- 三月份累计收入 230000 元, 达到了第 3 级:
230000*0.2-16920-9580-900=18600
元
三月份的纳税所得虽然也是 100000 元, 但是纳税额却比二月份多了接近一倍。因为随着累计收入的不断增加, 本月收入会进入越来越高的税率区间, 纳的税也就越来越多:
累计预扣也是 19 年税改的重要内容, 因为不需要直接参与, 所以宣传得没有汇算清缴多, 但是大家是能实际感受到: 每个月的税越交越多。
这点大家普遍觉得能接受, 因为纳税的总额并没有变多, 还是等于把全年的收入按累进税率算一下, 相当于把前几个月的税给延后了。在此期间还能用这笔钱做点别的事情, 对个人是更有利的。
第二个补丁: 汇算清缴
bug 修到这里感觉还不错, 但是继续修下去又发现了另一个问题。
"累计预扣" 要如何落地呢? 之前都每个月单独计税的, 不需要之前的状态。现在还得保存一个累计的值, 如果一年中没有换工作还好办, 如果中间换了工作呢? 回忆一下, 个人所得税虽然叫 "个人" 所得税, 但其实都是企业代缴的。当前的企业怎么可能知道你在上一家企业的累计收入呢? 这可是商业机密啊。
所以当你换工作后, 现行税法会从头开始累计:
这就会导致 "累计预扣" 的税钱比较少。这是不公平的。
有的人更惨一些, "累计预扣" 反而会多交。上面的这种有稳定工作的, 交的都是 "工资税" 。还有些人根本没有稳定的工作, 也不存在一个帮他计算 "累计" 的企业了, 只能按照每次所得进行纳税, 有点像之前的老税法, 这种叫做 "劳务税" :
上述问题全部来自于 "累计收入" 的信息不可知。但是国税局对你的累计收入是一清二楚的。于是我们就可以修复这个问题了, 在每年结束后让个人再进行一次 "汇算清缴", 这个算出来的数字肯定是准确, 跟之前的预扣只要多退少补就行了。
- 换工作的人预扣税一般会少, 需要补税
- 做劳务临时工的人一般预扣会多, 需要退税。汇算清缴的一个重要意义也是平衡了工资和劳务所得。
实习生表面上有稳定的公司, 其实交的是劳务税。至今记得 2018 年我在公司实习, 2019 年退了一大笔钱, 高兴坏了。
- 除此之外, 为了公平性, 国家还增加了赡养老人, 子女教育, 住房贷款等多个专项扣除, 让我们在满足条件的时候能够进一步退税
End
作者:元青
微信公众号 「技乐书香」
关注我,用程序员和 i 人的视角解读世界。
参考资料
- www.hanshenglaw.cn/CN/10839/fb... 税法变迁历史
- www.bilibili.com/video/BV1Mt... 李永乐老师 如何才能获得退税?关于个人所得税汇算清缴的一切
- law.pkulaw.com/falv/1fc5de... 中国法律检索系统