李春喜




摘要:新個人所得稅法實施后,工資及個稅的計算邏輯發生了變化,如何高效、準確地完成工資個稅的計算及個稅申報,是小微企業的人力和財務人員迫切希望解決的問題。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