基于Python的小微企业工资个税计算工具设计与实现

2021-10-25 22:46李春喜
科技信息·学术版 2021年16期
关键词:小微企业

李春喜

摘要:新个人所得税法实施后,工资及个税的计算逻辑发生了变化,如何高效、准确地完成工资个税的计算及个税申报,是小微企业的人力和财务人员迫切希望解决的问题。Python作为一门新兴编程语言由于上手简单,功能强大受到了广泛的欢迎。本文通过对最新个人所得税法的相关要求进行详细分析,梳理了员工薪酬及个税的计算逻辑,利用Python语言设计开发出一套员工工资及个税计算小工具,帮助小微企业降低运营成本,提高工作效率。

关键词:小微企业、工资个税、计税工具、Python

一、引言

2018年8月31日全国人民代表大会常务委员会批准了修订后的《中华人民共和国个人所得税法》,同年国务院修订《中华人民共和国个人所得税法实施条例》,并于2019年1月1日起正式实施。本次修订提高了个人所得税的免征额,同时对个人所得形式、扣除项目、税率和级距、征收方式等方面进行了较大的调整。

按照税法要求,企业应对本公司员工工资薪金收入进行个人所得税的代扣代缴。新个人所得税法实施以后,企业员工工资及个税的计算逻辑较以往发生了较大的变化,主要表现在:一是个税适用税率由按照月度收入计算,变更为按年度累进计算适用税率,企业计算个税时需要对员工当年发放的全部收入进行累加;二是增加了子女教育、继续教育、大病医疗、住房贷款利息或者住房租金、赡养老人等支出等专项扣除项目,具体金额由员工自行申报,并且动态变化;三是2020年以来由于“新冠”疫情的原因国家推出了减税降费政策,个别地区出现了社保基数、公积金基数不同步的情况。以上因素,对企业编制员工工资表及个税申报的工作提出了更高的要求。小微企业作为经济社会活动的基本企业单元,与大型企业相比信息化水平低,系统建设投入不足。在新个人所得税法实施的背景下,如何高效、准确地完成工资个税的计算及个税申报,是小微企业的人力和财务人员迫切希望解决的问题。

Python作为一门新兴编程语言由于上手简单,功能强大受到了广泛的欢迎。在金融财务领域利用Python开展数据分析、生产力工具开发等以提升工作效率的做法已经越来越普遍。本文通过对最新个人所得税法的相关要求进行详细分析,梳理了员工薪酬及个税的计算逻辑,利用Python语言设计开发出一套员工工资及个税计算小工具,帮助小微企业降低运营成本,提高工作效率。

二、系统设计

(一)工资薪金个税相关政策

根据个人所得税法的有关规定,企业向员工支付的工资薪金(包括以货币形式支付的福利)属于员工居民综合所得,企业应在发放工资时计算员工的应纳税所得额,并按照相应的税率代扣代缴个人所得税,同时进行个税预缴申报。

对于居民个人的综合所得,以每一纳税年度的收入额依次减掉减除费用、专项扣除、专项附加扣除和依法确定的其他扣除后的余额,为应纳税所得额。其中专项扣除,包括居民个人按照国家规定的范围和标准缴纳的基本养老保险、基本医疗保险、失业保险等社会保险费和住房公积金等;专项附加扣除包括子女教育、继续教育、大病医疗、住房贷款利息或者住房租金、赡养老人等支出;其他扣除,包括个人缴付符合国家规定的企业/职业年金,个人购买符合国家规定的商业健康保险、税收递延型商业养老保险的支出,以及国务院规定可以扣除的其他项目。

根据《中华人民共和国个人所得税法》(2018年修订版)个人综合所得按纳税年度合并计算个人所得税,根据所得额分别适用百分之三至百分之四十五的超额累进税率(见表一)。

(二)需求分析

经过分析,对于小微企业人力资源和财务部门而言,工资及个税相关的需求主要包括四部分,一是完成每月代扣代缴个税及实发工资的计算并输出Excel格式的工资表;二是基于已計算完成的工资、个税信息生成Excel格式个税申报表;三是基于已计算完成的实发工资信息,生成银行代发工资要求的Excel格式的工资代发文件。四是可根据需要,查询各个月度员工应发工资、专项扣除、专项附加扣除、应缴个税、实缴个税、实发工资数据,以及截至某个月度的累计数据等。

(三)功能设计

工资个税计算小工具共分为四个功能模块,分别为基础设置、工资个税计算、报表生成、历史数据查询。

基础设置模块主要实现初次应用系统时对当年以前月度基础信息的导入,以便计算存储累计数据。

工资个税计算模块主要实现基于历史累计数据和当月导入基础数据进行员工当月应缴个税、实发工资的计算。

报表生成模块主要实现月度工资表、月度个税申报表、月度工资代发表的生成导出。

历史数据查询模块主要支持对当年历史月度相关数据的查询导出。

(四)数据存储设计

考虑到小微企业的工资数据量相对不大,为降低实现的复杂度,采用HDF5 (Hierarchical Data Format) 这一常见的跨平台数据储存文件,进行数据存储。建立Data1,Data2两张数据表存储相关信息。其中Data1存储月度员工应发工资、专项扣除、专项附加扣除、其他扣除、应缴个税、实缴个税、实发工资等数据。Data2存储截至某个月度的累计数据信息。此外,设计一张《基础数据导入表》,该表为Excel表格式,包含的字段与Data1基本相同,但不包含应缴个税及实发工资信息。《基础数据导入表》用于企业的人力资源和财务部门进行基础数据的准备,如填报每位员工的本月工资发放额、社保、公积金扣缴额等。

Data1表的结构如下:

三、系统实现

(一)功能实现

按个人所得税法规定,综合所得根据年内累计收入确定适用边际税率,所以计算当月个税时需要对当年度截至当前月度的累计收入及相应的扣除项进行累加计算,此项工作若由人工计算非常繁琐,但将各月度工资表的数据存入系统,通过系统写好的逻辑自动汇总计算,则十分容易。

计算个税及实发工资的基本逻辑是:针对每位员工,对年度内截至当前各月度税前应发工资、减除费用、专项扣除、专项附加扣除、其他扣除分别进行累计,然后按照以下公式分别计算出累计应纳税所得额、累计应扣缴税额、本月应缴税额、本月实发工资:

累计应纳税所得额=累计收入额-累计减除费用-累计专项扣除-累计专项附加扣除-累计其他扣除;

累计应扣缴税额=累计应纳税所得额*边际税率-速算扣除数;

本月应缴税额=累计应扣缴税额-累计已预缴税额;

本月实发工资=本期收入-本期减除费用-本期专项扣除-本期专项附加扣除-本期应缴税额;

各模块实现功能如下:

1、基础设置。用户运行系统后,提示用户如果是首次使用系统,须将截至当前各月度的《基础数据导入表》放到指定文件夹,系统进行遍历读入,并计算出各月Data1,Data2表相应数据,存入HDF5文件。如果是当年的1月份,则不存在历史累计数据,可直接退出。此外,也可以通过从税务机关系统导出已向税务机关申报的收入、个税数据,作为历史数据存入Data2表,替代对历史月度《基础数据导入表》的遍历。

2、工资个税计算。提示用户将本月《基础数据导入表》放入指定文件夹,系统将相关数据读入,同时从HDF5文件读入上月Data2表数据,进行运算后生成本月Data1、Data2表数据。如果是1月份,不存在上月数据,可直接根据当月Data1表数据,生成Data2表数据。

3、报表生成。提示用户选择报表生成月份,根据用户选择,读取相应月度Data1表数据,抽取相应字段生成Excel格式的月度工资表、月度个税申报表、月度工资代发表,并输出到默认文件夹。

4、历史数据查询。用户可选择月份,导出相应月度的Data1、Data2表数据及对所有月度Data1、Data2表收入、支出同名字段累加的数据。

5、技术实现上,借助于Python的Pandas包进行Excel文件读入,读入的数据通过DataFrame数据形式进行运算,运算结果可通过Pandas的功能进行Excel文件输出。对于月度Data1数据,以月度名+批次名(如20210101)作为key名。对于Data2表数据,以c+月度名+批次名(如c20210101)作为key名。Data1、Data2表分别存储到HDF5文件,并输出到指定文件夹,需要运算时再用Python读入,转换为DataFrame数据形式。

(二)功能实现的关注点

1、当月应纳税所得额的计算依赖于上月Data2表及本月Data1表、Data2三张表中的数据,其中姓名是作为主键对三张表进行关联。现实中企业会发生员工的离职、入职等情况,这时需要特定逻辑进行处理:上月Data2表存在主键,而本月Data1表中不存在的,视为离职,不对该条记录做运算;上月Data2表不存在主键,而本月Data1表中存在的,视为新入职,历史累计数据初始化为零。

2、按照新个人所得税法,个税的征缴适用超额累进税率,需要对每位员工的累计应纳税所得额进行判断,根据金额确定适应的税率,需要增加专门的处理逻辑。

3、专项附加扣除包括子女教育、继续教育、大病医疗、住房贷款利息或者住房租金、赡养老人数据是员工根据个人情况申报的数据,会根据员工个人情况的变化发生变化,每月的数据都可能不同。

4、在个税申报表中只需要生成姓名、证照类型、证照号码、本期收入、基本养老保险费、基本医疗保险费、失业保险费、住房公积金、企业/职业年金这些字段的数据,对于专项附加扣除字段的信息,以税务局系统中存储的为准。

5、由于部分企业会根据考核结果单独发放奖金或绩效,个别月份存在多次发放薪金的可能,在遍历各月度Data1、Data2文件时要注意数据的完整性,不能遗漏。

四、系统应用

(一)运行效果

某小微企业有员工100人,编制计算工资表需要2-3小时的时间,利用工资个税小工具计算输出工资表,大约10分钟内可完成工资表、个税申报表、代发工资表的生成及整理,工作效率大幅提升,同时还减少了人工计算出错的概率。

(二)存在不足及完善思路

1、目前小工具仅实现了基于《基础数据导入表》的导入数据进行计算输出,而《基础数据导入表》中各项基础信息仍需要人工进行录入。下一步可考虑根据上月的Data1表自动生成本月的Data1表,再由企业人力和财务人员对增减员进行干预,可进一步提升工资计算工作的自动化水平。

2、目前小工具尚缺少用户和权限控制功能,不利于工资数据的保密。下一步可考虑增加用户及权限设定功能,使之从小工具向功能较为完善的系统进化。

3、小工具不具备自动提醒功能。目前是每年的7月份社保、公积金基数都会发生变化,当用户输入处理数据的月度为7月时,系统可增加提示功能,提醒用户是否已更新社保和公积金基数。

4、为了简化数据处理,在数据结构设计时,对子女教育、继续教育、大病医疗、住房贷款利息或者住房租金、赡养老人等专项附加扣除的细项并未做存储,简单以专项附加扣除汇总数替代,不利于日常管理查询,下一步可考虑增加专项附加扣除明细导入功能,将从税务局网站下载的专项附加扣除明细自动导入系统存储。

五、总结

基于Python开发的工资个税小工具,属于轻量级的小应用。由于其基于开源的Python语言开发,不但为小微企业节省了购买人力资源系统的成本,同时减少了小微企业人力资源和财务人员的工作压力,避免了人工操作出错的概率,较Excel操作还可以处理更大规模的数据,有较强的可扩展性,为小微企业信息化建设提供了参考。

参考文献

[1]全国人民代表大会常务委员会关于修改《中华人民共和国个人所得税法》的决定,中华人民共和国主席令第九号,2018-8-31.

[2]《中华人民共和国个人所得税法实施条例》,中华人民共和国国务院令 第707號,2018-12-18

猜你喜欢
小微企业
农村小微企业电商发展的内部控制问题研究
关于支持小微企业转型升级路径的思考
温州小微企业融资环境及能力分析
“营改增”对小微企业的影响分析
小微企业中员工激励制度及流失管理