本帖最后由 sunya_0529 于 2012-3-19 19:13 编辑
先看一下个税筹划的一个简单的实例——
国籍 | 月工资 | 社保公积金 | 年终奖 | 计税工资 | 计税奖金 | 工资税 | 奖金税 | 实得收入 | 备注 | 中国 | 25000 | 4500 | 18001 | 20500 | 18001 | 3245 | 1695.1 | 33560.90 | 常规计税 | 中国 | 25001 | 4500 | 18000 | 20501 | 18000 | 3245.25 | 540 | 34715.75 | 优化计税,陷阱模式 | 中国 | 9501 | 4500 | 33500 | 5001 | 33500 | 45.1 | 3245 | 35210.90 | 优化计税,疯狂模式 |
第二行数据显示的是将多发的1块钱奖金调节到月工资里计税,则省1154.85元个税的例子,这就是常说的陷阱;
第三行数据显示的是将工资里的15499元调节到年终奖里发放,则省1650元个税的例子。
在实际操作中,针对陷阱模式的优化计税比较可行,可以将调节的金额另立一个名目,比如叫“XX津贴"、"XX补贴"等直接放在工资里发放即可;而”疯狂模式“的操作其实也可以操作,直接在病事假或者其他扣款里减掉工资里调节出来的金额,加到年终奖里一起发放就好了,不过这种方式需要跟员工本人确认,HR不能做到最后被倒打一靶说公司克扣员工的工资,解释起来比较麻烦。
这里针对两种模式的筹划,同样使用了一个自定义函数,如上面的例子中,第二行的年终奖中的公式是:”=bestab(E2,D2,(A3="中国")+1,1)“ 第四个参数为0时是”疯狂模式“,为1时是”陷阱模式“,可以根据需要自行设定。(具体使用可以参考附件中的例子)
这个自定义函数的计算原理是使用枚举法测算税赋最小值,在”计税工资+年终奖“不变的情况下,年终奖从0开始逐步递增500,找到最小税赋值时记录下对应的工资和奖金值。(详情可参见附件中的”合理避税“表)
下面是这个自定义函数的源代码—— - Function BestAB(dbl1 As Double, dbl2 As Double, isCN As Boolean, isTrap As Boolean)
- 'dbl1,数月奖金发放当月计税工资
- 'dbl2,数月奖金金额
- 'isCN,“0”为外籍员工,“1”为中籍员工
- 'isTrap,“0”为疯狂模式,“1”为陷阱模式
- Dim r1 As Double, r2 As Double, s As Double, i As Double, arr(9999, 4), j%
- '求优化前的应纳税额
- r2 = iiatax(dbl1, IIf(isCN, 1, 2)) + iiatax(dbl2, IIf(isCN, 1, 2), dbl1)
- For i = 0 To dbl1 + dbl2 Step 500
- '奖金调节为i时,求纳税额
- arr(j, 0) = iiatax(dbl1 + dbl2 - i, IIf(isCN, 1, 2)) + iiatax(i, IIf(isCN, 1, 2), dbl1 + dbl2 - i)
- '工资调节为i时,求纳税额
- arr(j, 1) = iiatax(i, IIf(isCN, 1, 2)) + iiatax(dbl1 + dbl2 - i, IIf(isCN, 1, 2), i)
- arr(j, 2) = i '奖金额
- arr(j, 3) = dbl1 + dbl2 - i '工资额
- r1 = arr(j, 0)
- If isTrap Then '如果是陷阱模式的话,只向下调节奖金
- If r1 <= r2 And i < dbl2 Then
- r2 = r1
- s = i
- End If
- Else '如果是疯狂模式的话,工资奖金双向调节,直至最优
- If r1 <= r2 Then
- r2 = r1
- s = i
- End If
- End If
- j = j + 1
- Next
- If s = 0 Or Round(iiatax(dbl1 + dbl2 - s, IIf(isCN, 1, 2)) + iiatax(s, IIf(isCN, 1, 2), dbl1 + dbl2 - s), 2) = Round(iiatax(dbl1, IIf(isCN, 1, 2)) + iiatax(dbl2, IIf(isCN, 1, 2), dbl1), 2) Then
- BestAB = dbl2
- Else
- BestAB = s
- End If
- End Function
复制代码 |