Frappe HR shift management, rosters and shift scheduling

How shift types, assignments, shift requests and the roster calendar in Frappe HR drive auto attendance and overtime, and what to configure before rotating crews go live.

On this page

How Frappe HR shift management fits rotating crews on ERPNext

If your crews rotate across shifts, the attendance and overtime records you produce in Frappe HR are only as good as the roster behind them. Frappe HR models this with a Shift Type that defines the working window, grace periods and how check-ins are counted, and a Shift Assignment that puts a named employee on a shift type for a date range. Shift Requests let employees or supervisors ask for a change to an assignment, and the schedule view lets planners see who is on which shift on which day. Teams with fixed working hours usually do not need this layer: a single default shift or standard working hours on the employee record is simpler to maintain. Rotating crews, split shifts or night teams that change every week are where per-date assignments earn their keep.

The practical decision is how far you let the roster drive the records. Confirm in your Frappe HR version how Shift Assignments feed Auto Attendance and how overtime is calculated from shift end times, since these settings decide whether a late handover or a crew swap produces a wrong attendance mark. Map your rotation pattern to shift types before you enter any assignments, and decide who owns changes: the planner, the supervisor, or the employee through a Shift Request. Ask the vendor or check the Frappe HR documentation for the exact fields and behavior of your release, because shift logic changes between versions.

A plan that breaks usually breaks at the edges: overnight shifts that cross midnight, employees moved mid-cycle without an assignment, and cancelled requests that leave stale assignments behind. Test these cases with a few illustrative crew members for two full rotation cycles before go-live, and compare the generated attendance with the roster by hand. Keep the test data and results, because the same checks will be needed after every upgrade or change to shift rules.

Which shift model fits your crews

A fixed single shift is the simplest case: the same start time, end time and break rules apply to the same people every working day. In Frappe HR, the rule lives in a Shift Type, which defines the hours, grace periods and how check-ins are counted. Employees receive a Shift Assignment that links them to that Shift Type for a date range, and the same shift can be applied to a whole department or branch without per-person edits.

  • Shift Type hours: Define start, end and any break as the single source for attendance calculation.
  • Grace and late rules: Decide how many minutes of lateness are tolerated before a record is marked late.
  • Assignment scope: Decide whether assignments cover individuals, departments or a standing date range.
  • Holiday alignment: Confirm the Holiday List linked to the employee matches the shift's working days.
  • Overtime boundary: Decide the point after which hours count as overtime, since this drives later payroll.

Before configuring, confirm that your crews really share one pattern. If start times vary by team, you need separate Shift Types rather than exceptions on individual records.

Configuration options and when each fits

This table compares the four configuration levers that shape a Frappe HR shift roster: Shift Type settings, Shift Assignment, Shift Request and holiday lists. Read each row as a decision: what the option controls, what it costs you to change later, and when it is the right tool. Confirm field names and defaults against the Frappe HR release you run, since shift behavior has changed between versions.

OptionWhat it controlsTrade-offWhen it fits
Shift Type times and thresholdsStart and end times, grace period for late arrival, early exit tolerance and minimum hours for half-day statusOne shift type per pattern keeps reporting clean, but many near-identical types make the list hard to maintainFixed shift patterns such as day, evening and night where start times rarely change
Shift Type auto attendanceWhether check-ins within the shift window mark attendance automatically, and how the processing window is setHands-off attendance reduces admin, but punches outside the window or missing check-outs produce gaps that need manual reviewSites with reliable biometric or app check-ins and stable working hours
Shift Type overtime rulesWhether hours beyond the shift are counted as overtime and the threshold at which overtime startsCounting overtime from the shift end is simple, but rotating crews with split shifts may need separate types to avoid double countingTeams paid for hours beyond a scheduled shift, before you configure overtime slips
Shift Assignment to an employeeA single person's shift for a date range, overriding any group or default patternPrecise and auditable, but each change is a separate record, so large rosters become slow to maintainIndividual exceptions, phased returns from leave or temporary cover
Shift Assignment by group or rosterRepeated shift patterns applied to a set of employees, typically by department or crewFast to roll out and easy to review, but one-off changes must be layered on top and checked against the groupRotating crews and departments that follow a published schedule
Shift Request approvalsEmployee or manager requests to change a shift, routed to an approver before the assignment is createdKeeps control over changes, but adds a step that can delay cover if approvers are slowOrganizations where swaps and changes need documented sign-off
Holiday lists linked to shiftsWhich dates are non-working, so scheduled shifts and leave calculations skip themA single list is simple, but sites with several locations or sites may need separate lists per branchMulti-location teams with different public holidays and a shared roster

Setting up shift types, assignments and the roster

This sequence takes shift rules from a written design to a verified roster and auto attendance, so that each stage is checked against a small test group before the rules reach the whole workforce. The output is a tested set of shift types, assignments and a roster that matches the planned rotation.

  1. Write the shift pattern rules

    Before anything is configured, the HR lead and operations manager write down each rotation: start and end times, break rules, whether a shift crosses midnight, and the grace period for late arrival. These rules become the specification for the Shift Type records in Frappe HR. Confirm with your payroll owner which hours feed overtime, since shift length and overtime rules interact. The step is done when every rotation can be described in one line without exceptions.

  2. Confirm the employee master and holiday list

    Check that every employee who will work shifts has a correct company, department, designation, employee ID and attendance device ID where punches come from a device. Confirm the Holiday List assigned to each employee matches the public and company calendar for the period, because holidays affect whether a scheduled shift is expected. Export a short list of employees with missing fields and fix them in the master. The check passes when the test group shows no missing values on these fields.

  3. Create shift types for the rotations

    In Frappe HR, create one Shift Type for each rotation defined in the first step, entering start time, end time, the late entry and early exit allowances, and the working hours threshold for a half day or absent status. Keep naming consistent, because the names appear in reports and assignment lists. Ask the implementer or your internal administrator to confirm which settings are available in the Frappe HR version you run. The check is a saved Shift Type per rotation with values matching the written rules.

  4. Assign shifts to a test group

    Select a small group of employees covering each rotation and create Shift Assignment records with start dates and, where needed, end dates. Use a planning window that covers at least one full rotation cycle so that transitions between shifts are tested. Where employees change shift mid-cycle, submit a Shift Request and confirm it creates the expected assignment. The check is that each test employee has exactly one active assignment for each date in the window.

  5. Review the roster calendar

    Open the shift roster view for the test group and compare each day against the written rotation. Look for overlapping assignments, days with no shift, and shifts falling on holidays from the holiday list. Ask a shift supervisor to sign off the calendar for the test group, since they know the coverage needs. The step is complete when the calendar matches the rotation on every day of the test window and the supervisor has accepted it.

  6. Enable auto attendance for the test group

    Turn on Auto Attendance for the shift types in the test group, so that attendance records are generated from punch logs against each employee's assigned shift. Confirm the punch source, whether device import or check-in records, is delivering logs for these employees before you rely on the output. Record the setting values in your configuration notes so that the same settings can be reproduced in the production site. The check is that auto attendance runs and creates records for the test group.

  7. Check a sample period against expected punches

    Choose a sample period from the test window and compare the auto attendance results with the punches you expect for each employee, including late arrivals, early exits and missed punches. Mark each difference as a rule error, a data error or a device error, and correct the cause before widening the rollout. Also check that overtime figures for the sample period match the agreed hours rules. The step is done when the sample shows no unexplained differences and the list of accepted exceptions is documented.

How shifts drive auto attendance and overtime

The shift assignment decides how raw check-ins become attendance. When Frappe HR processes punches for an employee, it compares the first check-in and last check-out against the start time, end time and grace or threshold settings on the shift type, then marks the day as present, half day or absent. Auto attendance runs against the shift an employee holds on that date, so a shift assignment that is missing, overlapping or dated wrongly will produce attendance that looks plausible but is wrong. Before go-live, confirm which shift type applies to each roster pattern, which late entry and early exit thresholds are set, and how the employer treats a punch that falls outside the window.

Overtime depends on the same shift, layered with the overtime configuration. The shift defines the scheduled hours, so hours worked beyond that window are the candidates for overtime, and the overtime types, daily caps and rate rules then decide what is paid or compensated. Treat the overtime settings as a separate design decision from the roster: an employer that pays overtime only after a daily cap, or only for approved hours, needs that rule written down and tested against real punch data. The HR team should confirm the exact fields and how overtime is calculated in their installed version of Frappe HR before promising a rule to employees.

Biometric and RFID devices feed the same check-in records that drive auto attendance, so device timing errors become attendance errors. The punch data path and device setup are covered in the biometric attendance topic, so here the test is narrower: build a set of known schedules and run them end to end. Night shifts that cross midnight are the most common failure. Check that the attendance date is assigned to the shift start, that the check-out on the following calendar day is matched, and that overtime is not double counted across two dates. Test a handful of edge cases, including a missed punch, an early start, a shift change mid-week and a public holiday, and compare the results with a manual calculation before the first payroll run.

Where rotating-shift rosters go wrong

Rotating-shift rosters fail quietly. A wrong assignment or an unapproved swap usually shows up later as a wrong attendance record, an overtime dispute or an incorrect pay run. The cards below cover the risks we see most often in Frappe HR shift setups and the control that prevents each one.

Overlapping shift assignments

When two shift assignments for the same employee cover the same dates, Frappe HR has no clear answer for which shift applies. Attendance and overtime then depend on which record the system picks. Control it by reviewing assignments per employee for overlapping date ranges before each roster period opens, and by ending the previous assignment before starting the next one.

Night shifts crossing dates

A night shift that starts at 22:00 and ends at 06:00 belongs to two calendar dates. If the shift type and punch matching do not handle the date boundary, the hours can be posted to the wrong day or split across two attendance rows. Check sample night-shift punches end to end in a test site, and confirm how your shift type defines its start and end before go-live.

Unapproved swaps changing pay

A shift swap that is made in a chat thread or on a shop-floor board, and never recorded in Frappe HR, changes who worked which hours. If the swap also changes the shift allowance or overtime basis, the salary slip pays the wrong amount. Require every swap to go through a shift request with an approver, and reconcile approved requests against the roster before payroll runs.

Holidays out of step with the roster

If the holiday list attached to an employee does not match the holiday calendar used to build the roster, employees may be marked absent on a public holiday they were not scheduled to work, or miss a holiday premium they earned. Assign one holiday list per location, link it to the employee record, and check it against the roster calendar for each month that contains a public holiday.

Stale assignments after transfers

When an employee moves to another branch, department or crew, the old shift assignment often stays active. The employee then keeps appearing on the old roster, and auto attendance keeps using the old shift. Make the transfer step include closing the current shift assignment and creating a new one with a start date, so the record history matches the transfer date.

Gaps in punch data

Auto attendance depends on punch logs. A missed badge tap, a device that was offline, or a punch that failed to sync leaves a gap that Frappe HR cannot infer from the roster alone. Decide in advance who reviews unmatched or missing punches, how corrections are approved, and how often device sync is checked, so that gaps are fixed before the salary slip is generated.

Questions buyers ask before shift setup

What does the shift setup effort depend on?

The effort depends mainly on how many shift patterns you run, how often people rotate between them, and how many sites, departments or legal entities need their own rules. A single day shift with fixed hours is a small configuration task. Several rotating patterns with night premiums, split shifts and cross-midnight hours need more design work before any data goes into Frappe HR. Ask the partner to list every pattern, the rotation cycle, the attendance rules tied to each shift and the approval flow for changes, because those decide how much configuration and testing the build contains.

Can our HR team configure shifts in Frappe HR without a partner?

Yes, a team with Frappe HR administration experience can create shift types, assign them to employees and review the roster calendar on its own, especially for a stable schedule. The harder part is making shift rules agree with auto attendance, overtime and leave, because a mistake in shift start times or grace periods shows up later in payroll. A partner is most useful when the rules are complex, when the test cases need to be written and run, or when the team has no one who can check the configuration against the payroll output. Confirm your team's skills against the Frappe HR documentation before deciding.

What does the partner need from HR and operations before starting?

The partner needs a written shift catalogue and the people who own it. In practice this means the shift names and hours, the rotation pattern for each group, the employees in each group with their effective dates, the rules for late arrival and early exit, the overtime policy and the names of the people who approve shift changes. Operations should also provide sample rosters from the last few cycles, so the partner can check that the configured schedule reproduces what the business actually ran. Missing rules at this stage usually turn into rework after go-live.

How long does shift setup take, and what changes that?

Duration depends on roster complexity and data quality more than on the software itself. A clean employee list with one or two patterns can be configured quickly, while a plant with several crews, cross-midnight shifts and frequent swaps needs more rounds of validation. Data quality matters just as much: duplicated employee records, missing shift assignments and inconsistent device IDs each add a correction cycle. Ask the partner for a written scope that names the number of patterns, the employee count, the data sources and the test rounds, so the timeline follows from those inputs.

How do we handle shift changes after go-live?

Shift changes after go-live should follow a defined process, usually a shift request that a manager approves, followed by a shift assignment with an effective date. Changes made without an effective date can alter past attendance calculations, so the process should block retroactive edits unless an authorized person approves them. Decide who can create shift requests, who approves them, how swaps between employees are recorded and how the roster calendar is reviewed each cycle. Ask the partner to document this workflow and to test one full change, from request to attendance and overtime result.

How do shifts affect auto attendance and overtime?

Shifts set the expected start and end times that Frappe HR compares with check-in data, so the shift configuration drives how attendance is marked and how overtime is measured. If the shift's start time, end time or grace period is wrong, attendance and overtime will be wrong in the same way. Engineers should check the shift type settings, the link between devices or check-ins and the shift, and a sample of attendance records against the roster before payroll runs. The Frappe HR documentation describes these settings, and the partner should confirm them against the version you run.

Who owns the roster data once the project closes?

Your organization owns the roster data, the configuration and the documentation, and the partner should hand these over in a form your team can maintain. Ask for a written list of shift types, assignment rules, custom scripts or fields, and the test cases used to verify them. Confirm who will maintain the configuration after handover and whether you need a support arrangement for changes that touch payroll or attendance. Support and upgrades are available as retainers, and their terms should be set out in writing.

How DeployOpen scopes shift and roster work

DeployOpen scopes shift and roster work as a fixed-scope engagement, so the written scope has to describe your rotation rules before any configuration starts. The scope should list every shift type, the rotation pattern for each crew (for example, how a three-crew continental rotation moves forward each cycle), the Shift Assignment rules that decide who is on which pattern, and the Shift Request approvals that can change a shift after publication. It should also name the Holiday List and Employee records in scope and state which downstream effects are included, such as Auto Attendance by shift and overtime calculation. Ask for this written scope to state what is excluded, including any custom roster screens or integrations with an external scheduling tool, because those change effort more than the core shift setup does.

Configuration follows the rotation rules as written, not as remembered. Each shift type needs its start and end times, grace periods, late and early exit thresholds, and whether Auto Attendance is enabled, and each assignment must be tested against the calendar that the roster calendar actually displays. Testing uses real punch samples exported from your devices, run through the same import path your production data will use, so that boundary cases such as night shifts crossing midnight, swapped shifts and shift changes mid-cycle are checked against the attendance records they produce. Ask for the test cases and the expected attendance outcome for each one in the scope document, and agree who signs off the results, usually an HR operations lead and a payroll owner rather than only the technical team.

Support after go-live is optional and is usually offered as a retainer. Shift patterns change when a site adds a crew, when a collective agreement alters overtime thresholds, or when a device firmware update changes punch timestamps, so a retainer should name the response channel, the types of changes it covers and how they are logged and retested. Ask for the retainer terms in writing alongside the fixed-scope quote, and confirm the Frappe HR and ERPNext versions you are running, since behavior around shifts can differ between releases and must be verified against your version before a change goes live.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.