系统薪资核算设计OA(薪资天数工资出勤规则)「员工薪资系统」

本文深入探讨了如何设计一套高效、准确的薪资计算系统,涵盖从基本工资的设定到复杂的税务处理等各个方面。
通过详尽的分析与实用的建议,帮助读者理解薪资计算的复杂性及其背后的逻辑,旨在为HR专业人士和软件开发者提供有价值的参考。
作为一名打工人,每月工资到账就最开心的时候。
那么我们每月的工资是怎么算出来的,税前、税后工资是什么意思,社保公积金、个税这些要扣多少?要设计一套计算工资的系统,又需要做哪些功能?本文描述一下搭建OA系统中的薪资计算模块,需要做哪些事情,以及关于薪资计算的一些关键问题。
薪资计算是OA系统的核心功能,也基本上是最复杂的一块功能,虽然今天市面上到处都是OA系统,但要实现一套完整的薪资计算,依旧不是一件容易的事情。
一、薪资是怎么算出来的首先从HR视角,来看每个人的薪资是怎么算出来的。
1. 工资包含哪几项比如有个打工人叫小帅,每个月工资两万块钱,他的工资的具体构成,会有这么几项:基本工资,通常是合同上写的薪资,“每个月两万块钱”指的就是基本工资;出勤工资,结合实际出勤天数、请假天数、迟到早退,算出来的出勤工资。
比如小帅这个月请事假一天,基本工资两万块钱,出勤工资可能就是一万九;补贴扣款,即我们常见的餐补、出差补贴等;社保和公积金,即我们常说的五险一金,需要扣在工资里的部分;税前工资,以上该加的相加,该扣的扣除,就是税前工资;个人所得税,工资中应缴的税;税后工资,交税后,实际我们银行卡入账的钱。
2. 工资值如何计算以上每个项目的值需要如何计算:1)基本工资通常基本工资就是合同上写的工资。
有些公司会设置一个绩效工资,绩效拿满了才把这部分工资发给员工,也属于基本工资这一类。
还有的公司有个岗位补贴,可能也会写到合同中。
我们得出第一个公式:基本工资合计=基本工资+绩效工资+岗位补贴2)出勤工资出勤工资会按照员工当月实际计薪天数进行计算。
一般有两种规则:一种是以当月应出勤天数作为分母;另一种是将固定值21.75作为分母,21.75代表一年中平均每月的应出勤天数。
具体用哪种就看公司制度了,本文我们按第一种为案例。
应出勤天数,为当月工作日的天数加法定节假日的天数。
我国的法定节假日分为属于节假日的天数、和周末调休的天数,比如国庆7天,是3天的法定节假日和4天的周末,这3天的法定节假日是带薪的,需要加到出勤天数中,而4天的周末是不带薪的。
由此我们得出第二个公式:出勤工资=基本工资×(实际计薪天数/本月应出勤天数)应出勤天数=工作日天数+法定节假日带薪天数3)各项假勤的扣款请假考勤相关的扣款,类型会相对多一些:实际计薪天数:按照打卡天数,加上带薪假的天数。
如有当月入离职,只统计实际在职的天数即可。
考勤扣款:通常公司会有迟到、早退、缺勤的扣款规则,比如迟到一小时扣50块钱,计入考勤扣款中,或者算作缺勤,扣到计薪天数中;当月试用期转正:试用期有试用期的基本工资,如果当月刚好转正,需要将出勤天数拆开来,分为试用期和转正后的天数,然后分别计算试用期和转正后的出勤工资,再相加。
这一块深入下去,计算规则比较复杂,几个关键问题见第三节;由此我们得出第三个公式:实际计薪天数=打卡天数+带薪假天数+法定节假日天数-迟到早退计缺勤的天数并且完善第二个公式:出勤工资=试用期基本工资×(试用期实际出勤天数/本月应出勤天数)+转正后基本工资×(转正后实际出勤天数/本月应出勤天数)-考勤扣款4)社保公积金社保分为公司缴纳部分和员工缴纳部分,公司缴纳部分不会包含在薪资里,公司直接缴纳;员工缴纳部分,会直接在员工的薪资中扣除。
社保会在前一个月月底缴纳,第二个月算前一个月薪资时扣除。
我们所说的五险,包括医保、养老、失业、工伤和生育这5项,前三项是公司和个人都需要缴的,后两项是只需要公司缴的。
另外其他险种,比如大病。
具体规则各个地方可能会有所不同。
公积金和社保一样,分为公司部分和个人部分,个人部分在员工的薪资中扣除。
社保公积金要缴纳的金额,标准的方案是以每个员工过去12个月平均收入作为基数,乘公司比例和个人比例。
而有些公司会统一按一个特定的基数缴纳,比如最低工资作为基数。
这一块具体规则本文就不展开了。
由此我们可以得出税前工资的公式:税前工资=出勤工资-社保个人部分-公积金个人部分;社保个人部分=医保个人部分+养老个人部分+失业个人部分5)补贴扣款/个税所有补贴和扣款项,要按两个维度进行分类:一是是否计税。
比如我们常见的餐补、出差补贴、加班补贴,都是要计税的;有些是不用计税的,比如小帅想让公司给他多交一些公积金,钱从自己的工资里扣,这笔钱可以通过扣款的形式来计,这就属于不用计税的;二是是否已经发放。
比如出差补贴,有些公司不一定在薪资里发放,可能月中就已经发放了,但这笔钱需要放到薪资里计税。
这里要引申出一个报税工资的概念,就是要用来算税的钱是多少,他和税前工资的差别就在这一项。
以上要算税的项目统计出来,并算完个税,就完成了算薪的最后一步。
个税的值,一般是上税务局网站算出结果后再导下来。
因为个税计算规则较复杂,且数据源多,会有专项附加扣除等数据,因此不一定要在OA系统中计算。
最后我们得出三个公式:税前工资=出勤工资-社保个人部分-公积金个人部分+未发放要计税的补贴-未发放要计税的扣款报税工资=税前工资+已发放要计税的补贴税后工资=税前工资-个人所得税+不计税的补贴-不计税的扣款下图提供了一个具体案例,来说明整个工资计算的规则:3. 算工资的业务流程hr每个月计算工资的工作流程,一般是这么几步:确定要算薪人员,包括在职和本月入离职→统计出勤天数、考勤扣款、各项补贴等数据→计算税前工资、报税工资→员工确认工资条→找财务获取个税,计算税后工资→发薪审批流程→发工资二、如何设计一个薪资系统明确业务规则后,我们就可以开始着手设置一套薪资计算系统了。
1. 产品方向薪资系统属于OA系统中的一个模块,目标为准确计算员工薪资。
为了满足各公司不同的业务规则,这套系统需要支持用户自主可配置。
2. 产品架构如图通俗的解释,可以分为这5块:有哪些钱-薪资项目,谁、什么时候、需要发哪些钱-薪资方案,每人每月这些钱是多少-薪资档案、社保公积金、补贴扣款,计算每人每月的薪资-薪资核算,发工资条-工资条。
3. 薪资项目薪资项目模块定义公司有哪些钱。
所有前面提到的项目,比如基本工资、公积金这些基础项目,以及税前工资、税后工资这些结果项目,都要作为薪资项目。
对薪资项目的管理,需要让用户自定义这些项目的计算规则、数据来源、保留小数位数规则、是否可修改删除等。
几个比较重要的设置:1)是否可删除:薪资项目可以让用户自主定义,但有些薪资项目会被其他系统使用到,如果删除其他系统就没数据了。
比如实发薪资项目,会给到财务系统作为实际发工资的钱,这个删了工资没的发了。
这类薪资项目可以设置为不可删除。
通常在系统开发时,我们会预置一些常用的薪资项目和对应的计算规则,一来减少用户的操作成本,提升使用效率,二来可以定义被其他系统引用的、不可删除的项目。
2)数据来源:有三种方式:直接取值,如基本工资;手动录入或导入,如各类补贴;以及通过公式得出。
3)公式:薪资项目里最复杂的就是公式配置。
公式由参数和运算符号组成。
参数的作用是传递各项值,具体分为几类:考勤数据,比如月应出勤几天、实际计薪天数几天、迟到几天、早退几天、请假几天等;薪资档案数据,即基本工资、绩效工资;社保公积金数据,即各个险种的个人部分金额;还有各类已创建的薪资项目,也需要作为参数。
参数加上简单的加减乘除运算符号,即可实现公式的配置,比如前面提到的各个公式。
如果进一步扩展,还可以做一类条件公式,由多个条件+公式组成,根据结果在哪个条件来判断取哪个值。
举个例子,假如小帅所在公司,一个月迟到一天扣50元,迟到两天以上每天扣一百元,这个时候就可以使用条件公式了,设置两个条件+公式来实现。
条件公式的规则比基本公式更复杂。
条件公式的运算符号,需要加上大于、小于、等于、不等于这些;条件本身,需要多个if和else;条件的验证,需要验证条件格式是否正确、各个条件之间是否有冲突的范围等。
考虑到公式复杂,一般会设置公式校验功能,在提交时也需要进行公示校验,检验公式是否出现了语法错误、无关字符等。
4)保留小数位数:可以选择保留几位小数,或者不保留。
这里的区别是,计算过程中是否先要对这个薪资项目先进行四舍五入,再拿四舍五入后的结果去算最终结果,还是直接算到最后结果才四舍五入。
4. 薪资方案薪资方案模块定义发钱的规则,通俗解释就是哪些人、什么时候、要发哪些钱。
首先选择计薪时间、发薪日等规则;然后是选人员范围,可以按部门选人。
一般情况下,普通员工是统一的一套薪资方案,一些特殊人群比如市场人员,有提成,单独配一套薪资方案;最后选择薪资项目,已创建的项目哪些需要给这些人来发。
5. 薪资档案薪资档案模块为各类薪资基础数据的取值来源,分为三个部分:一是基本薪资,人+基本工资/绩效工资,区分试用期和转正后,和劳动合同的薪资保持一致。
薪资档案需要支持发起调薪;二是社保公积金,人+社保各险种/公积金的个人部分的值,按照社保配置规则来计算。
社保配置规则又是另外一个模块了,本文暂不提;三是补贴扣款,人+月+每一项补贴和扣款,需要按月添加或者导入每个人的数据。
6. 薪资核算薪资核算模块就是给员工算钱。
每个月要给员工核算薪资的时候,创建一个薪资核算表,选择薪资方案和算薪月份,即可开始算薪。
按照算钱的业务流程,薪资核算分为4个步骤:确认人员范围、薪资核算、工资条确认、薪资发放审批。
1)确认人员范围:按照创建时选择的薪资方案来确定有哪些人,按照月份来确定在这个月内在职、和有月中入离职的人。
另外要支持人员的添加和移除;2)薪资核算:按照所选薪资方案中包含的薪资项目,根据公式进行薪资计算。
核算的结果可以进行导出、或者重新核算;如果人比较多,薪资计算会比较慢,可以使用异步的方式进行。
3)工资条确认:核算完成后,给员工发送工资条,进行工资确认。
如果员工的工资有误,可以修改薪资档案或考勤数据后,重新核算,并再次发送工资条。
工资条确认非强制,没确认工资条的人,公司也得给他发工资不是。
可以设置超过几天后,自动为确认状态的规则。
4)薪资发放审批:确认每个人的薪资都正确之后,发起薪资发放审批流程,给到相应的财务人员进行审批。
审批期间不能做其他操作,如果审批不通过,可以再进行重新核算。
审批完成之后,薪资核算流程结束,将薪资数据同步至财务系统的应付账单,进行薪资发放。
7. 工资条员工的工资条,展示该员工该月的各项工资值和确认操作。
工资条模块除了员工端的展示,也需要有后台管理。
一是工资条展示字段的设置,除了各薪资项目之外,工资条上还需要展示本月的出勤天数、备注等,让员工自己能算出来实发工资。
二是工资条发送和确认的人员数量统计。
8. 薪资账单属于BI模块,根据核算结果,统计每个月的发薪人数、实发薪资金额、个税金额等。
三、薪资核算系统的一些常见问题的处理方式1. “计薪天数” 的定义和计算规则人事业务上,“计薪天数”和“出勤天数”并不完全相等。
“出勤天数”就是正常打卡+外出出差+补卡的天数,不包含任何请假,而“计薪天数”则是出勤天数+带薪假+法定节假日的带薪日。
在系统设计中,这两个数据需要分开计;影响计薪天数的条件,包括是否打卡、补卡、外出出差、请假-带薪假、请假-不带薪假、迟到早退、后台设置为正常等,每一类情况都需要确定计薪天数的规则,另外各类情况之间需要设置优先级,用来解决同时发生的情况下是否需要计薪。
比如,当天迟到,然后请了事假,最后又后台设置为考勤正常,这种的结果究竟是什么。
通常来说,优先级规则为后台设置>请假>外出出差>补卡>迟到早退;其中是否打卡,比如上班打卡、下班没打卡,通常有两种规则,计为半天缺勤、或者计为全天缺勤。
具体的考勤规则设置,本文暂不展开。
2. 请假对薪资的影响请假的计薪规则一般有3种:不带薪比如事假、带薪比如年假、只发一部分薪资比如病假产假等。
规则需要在请假规则中配置。
带薪假,需要加到计薪天数中计算。
只发基础薪资的假期,需要另外计算这部分假期薪资,在税前薪资中加上去。
请假可以按照小时、半天、上午/下午、全天来请假,对应体现在计薪天数上。
要注意的是半天和上午/下午是两种不同的概念,半天=0.5天,而上午/下午不一定是0.5天,要看公司上午下午的上班时长。
3. 按天数计的迟到早退扣款规则设置很多公司会有一种阶梯式扣款的迟到早退扣款规则,比如,迟到一个小时以内,每天扣50块钱;迟到1-4个小时,算缺勤半天;迟到4小时以上算缺勤一天。
这种规则需要按照每天的迟到时长采用不同的规则,而且有两类扣款规则,按固定金额计,和按出勤天数计。
系统设计的难点在于,薪资项目公式的迟到天数参数,只能一个月传整体的一个值,即一个月迟到了几天,无法传一个月里每天的值,即每天迟到的时长。
所以无法通过公式配置。
为了让迟到时长和扣款规则都可配置,这项规则需要放在考勤规则中配置,迟到时长+对应的扣款金额OR出勤天数。
每月薪资核算时,直接算出每个人的结果,体现在“考勤扣款”和“计薪天数”这两个薪资项目的计算结果中。
4. 试用期转正、调薪前后的薪资核算方式试用期转正和调薪,在转正/调薪生效日期前后,基本工资不一样。
如果这一天发生在一个月的月中,就需要将计薪天数拆分。
和上一条一样,薪资项目公式的基本薪资参数,只能一个月传整体的一个值,无法传一个月里每天的值。
试用期转正,我们的处理方式是将“月计薪天数”拆分为“试用期计薪天数”和“转正后计薪天数”这两个参数,公式参照第一节的1-3。
调薪,我们只允许调薪生效日期在每月1日,从规则上规避这个问题。
如果一定要在月中调薪,只能手动计算当月调薪前后的差值,在税前薪资中另外增加或者扣减。

系统薪资核算设计OA(薪资天数工资出勤规则)

专栏作家潘帕斯雄鹰,人人都是产品经理专栏作家,进击、踩坑中的产品狗一枚,关注互联网,写过小说,看过哲学。
简书:潘帕斯雄鹰。
本文原创发布于人人都是产品经理。
未经许可,禁止转载。
题图来自 Unsplash ,基于 CC0 协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

联系我们

在线咨询:点击这里给我发消息