一、一句话定义:动态考勤是按"排班"判定的
考勤判定的核心动作只有一句:把每一次打卡,放进它应该属于的那个班次槽位里。
固定班的公司,这个槽位是写死的——所有人的上班时间都是 9:00,那么 9:03 那次打卡就是"迟到 3 分钟"。而动态考勤的公司,槽位取决于这个人这一天排的是哪个班:
- 如果排的是
08:00-20:00白班,8:03 打卡 = 迟到 3 分钟; - 如果排的是
20:00-08:00夜班,8:03 打卡 = 夜班下班后的下班卡,属于"早退"或"加班"。
同样的 8:03,结论完全相反。这就是"动态"二字的全部含义:判定基准不是全局配置,而是这个人当天被排的班次。
二、动态考勤的三种常见形态
| 形态 | 典型行业 | 判定依据 | 计算难点 |
|---|---|---|---|
| 轮班/排班制 | 制造车间、医院、门店、物业、仓储 | 按天排的班次表 | 排班改班、跨凌晨、一人多班次 |
| 弹性工时 | 互联网、研发、外资 | 固定核心时段 + 每日总时长 | 不是"几点到"而是"够几小时" |
| 综合工时 | 运输、施工、季节性生产 | 周期内总工时(周/月/季) | 单日超时不算加班,要按周期结算 |
这三类常被混着叫"动态考勤",但算法完全不同。选系统前一定要先确认自己属于哪一类——尤其第三类(综合工时),很多考勤系统的"加班"是单日算的,套到综合工时上就全错了。
三、5 个判定难点(也是人工最容易错的地方)
难点 1:排班改了,考勤要不要跟着改
门店常见:本来排的小王周日休息,周六临时和同事换了班。换班之后,周日那次打卡该不该算加班?正确做法是以最终生效的排班表为准,改完排班重新算。人工 Excel 最常错的就是"用旧排班算新打卡"。
难点 2:跨凌晨的打卡算今天还是明天
夜班 20:00 上班、次日 08:00 下班。凌晨 02:00 那次打卡,在原始考勤机文件里日期是"次日",但业务上属于前一天的班。系统必须能把跨凌晨的卡归回上班当天,否则夜班员工每天都会被记成"缺卡 + 旷工"。
这一项是筛选器:不支持跨凌晨归属的系统,夜班考勤百分之百算不对。
难点 3:今天没排班的人怎么算
排班表总有漏排的时候。系统需要明确策略:没排班的日子视为休息(有打卡就记加班),还是视为应出勤(没打卡就记缺勤)。最稳的做法是导入前校验排班覆盖率,把没排班的人先补上,而不是等算完再去猜。
难点 4:一人多班次与临时调班
同一个考勤组里集中了早班、中班、夜班,某个人这个月三种都上过。这时"按人挂一个固定班次"的做法就不成立了,必须走"按日期排班"。同时考勤组内要允许存在多个班次,否则组里挂不下三种时间。
难点 5:一天四段/六段打卡的槽位匹配
有些班次中午有两小时午休(要打 4 次卡),有的工厂晚餐时间也要打下班卡(要打 6 次卡)。段数越多,槽位匹配越容易串位——把下午上班卡当成上午下班卡,后面全错。系统必须按"时间顺序 + 相邻用时合理性"来匹配,而不是简单按下标顺序塞。
四、动态排班考勤的落地顺序
- 先把班次建全:把公司所有在用时间建成班次。每个班次含上下班时间、午休时段、晚餐时段(如有)、是否跨凌晨、标准工时。
- 按考勤组归类:一个考勤组 = 一套班次集合 + 一套规则。同一班组、同一制度的人放一组,组内允许多个班次。
- 排班并核对覆盖率:给每个人按日期排出班次;导出前检查有没有人整天没排。日常有换班的,改完排班记得重算。
- 导入打卡并复核:传原始打卡,系统按排班归属每个槽位。重点复核跨凌晨班、临时调班的人。
- 出表:明细表按人按日铺开,汇总表按人合计,导出交付。
五、常见问题
动态考勤和弹性考勤是一回事吗?
不是。动态考勤的核心是"每天的班次可能不同",仍要求按时到岗;弹性考勤是"上班时间可以在一个区间内浮动,只看当日总工时"。前者的判定基准是排班表,后者是每日时长规则。
轮班津贴、夜班补贴怎么算?
补贴一般绑定在"班次"上而不是"人"上:这个班次(如 22:00 后的夜班)每小时补多少。这样同一个人换班后补贴自动跟着变,不需要手工改。
一个人同时在两个考勤组怎么办?
不应该存在。员工归属必须唯一——否则同一天会有两套规则同时生效,结果无法解释。遇到兼职、借调,建议单独建组,而不是挂在两个组里。
排班表能不能按周期批量套?
能。常见的"做二休二""上四休二"都是周期规律,按周期生成一次再逐日微调,比一天天点要快得多。
