计算个人所得税最佳节税
年底了,2019年也参加了CPA税法的考试,闲来无事给大家分享一个昨天刚写的计算个人所得税的小程序。新鲜出炉,整个程序主要是基于2019年最新的个人所得税纳税规则计算最佳节税点上,年度综合所得以及年终奖一次所得该如何分配,请大家指教,程序主要是使用pandas库来操作,不得不说pandas的区间索引简直是为本程序量身定做:
import pandas as pd
import numpy as np
#个人所得税年度税率表,月度税率表在年度税率表基础上除以12得到,就没有单独列示,下面用到的地方我会说明
tax_ratio = pd.DataFrame([
[1,'不超过36000元的部分',3,0],
[2,'超过36000元至144000元的部分',10,2520],
[3,'超过144000元至300000元的部分',20,16920],
[4,'超过300000元至420000元的部分',25,31920],
[5,'超过420000元至660000元的部分',30,52920],
[6,'超过660000元至960000元的部分',35,85920],
[7,'超过960000元的部分',45,181920]],
columns=['rank','des','ratio','easy_ded'],
index=pd.IntervalIndex.from_breaks([-1, 36000, 144000, 300000,420000, 660000, 960000, 10000000]))
#函数主要目的是通过计算得出最佳的年度综合所得以及年终所得,大家知道年终所得可以选择并入综合所得也可以单独计税,
#算是普及一点税务知识,设置4个参数分别是初始综合所得,年终所得,专项附加扣除,以及试算步长。
def tax_min(comprehensive_amount,year_end_amount, add_ded=0, step=100):
comprehensive_income=comprehensive_amount
tax_res = []
for i in range(int(year_end_amount/step) + 1):
year_end_income = year_end_amount - step* i
comprehensive_income = comprehensive_amount + year_end_amount - year_end_income
#综合所得缴税,应纳税额应扣除基本减除费用及专项附加扣除
taxable_income = comprehensive_income - 5000*12 - add_ded
if taxable_income <= 0 :
comprehensive_tax = 0
else:
comprehensive_tax = tax_ratio.loc[taxable_income].ratio/100 * taxable_income - tax_ratio.loc[taxable_income].easy_ded
comprehensive_tax = comprehensive_tax if comprehensive_tax >0 else 0
#年终奖缴税,直接通过换算年度税率表至月度税率表来计算
year_end_tax= tax_ratio.loc[year_end_income].ratio/100 * year_end_income- tax_ratio.loc[year_end_income].easy_ded / 12
tax_res.append([comprehensive_income,year_end_income,comprehensive_tax, year_end_tax, comprehensive_tax+year_end_tax])
pd_tax_res = pd.DataFrame(tax_res, columns=['comprehensive_income','year_end_income','comprehensive_tax', 'year_end_tax', 'total_tax'])
tax_min = pd_tax_res.total_tax.min()
#简单打印出最佳综合所得和年终所得的分配
print(pd_tax_res[pd_tax_res.total_tax == tax_min].to_string())
return
#测试一下,假如年度综合所得为85000,年终为55000,专项附加扣除为10000,以步长1000试算
tax_min(85000, 55000, 10000, 1000)
output:
comprehensive_income year_end_income comprehensive_tax year_end_tax total_tax
19 104000 36000 1020.0 1080.0 2100.0
20 105000 35000 1050.0 1050.0 2100.0
21 106000 34000 1080.0 1020.0 2100.0
可以看到,最优解有三个,年度总纳税额都在2100元。
来源:CSDN
作者:shuuulan
链接:https://blog.csdn.net/carpentershu/article/details/104059473