Frappe HR overtime calculation and overtime slips

How overtime is calculated, rated and paid in Frappe HR on ERPNext, what each configuration choice changes, and what to confirm before your payroll depends on it.

On this page

How Frappe HR overtime calculation works and when you need it

For an HR or payroll lead, the core problem with overtime is that it sits outside base salary and must still match the attendance record line by line. Frappe HR addresses this by calculating overtime hours from attendance, applying overtime types and rates to those hours, and producing overtime slips that carry the result into payroll. Overtime is therefore not a manual adjustment on the salary slip but a calculated output of attendance and configuration. Before you rely on it, confirm in the Frappe HR documentation for your exact version how overtime hours are derived from check-in and check-out records, and whether the calculation runs per day, per shift or per period. The answer determines what your timekeeping data must look like on day one.

A team usually needs this configured rather than handled in a spreadsheet once overtime rules differ by employee group, once the number of overtime hours is high enough that manual reconciliation against punch logs becomes error-prone, or once an auditor or labor authority may ask how a specific payment was derived. Spreadsheets cannot easily prove that each overtime amount traces back to a specific attendance record and rate. In Frappe HR, the trail runs from attendance to overtime slip to salary slip, which is easier to review and correct. Ask your implementation partner and your own payroll team to agree which rates, caps and approval steps must be modeled, and to test them against a month of real attendance before go-live.

Which overtime rate method fits your pay policy

This table compares the main overtime configuration choices in Frappe HR, from overtime types and caps to rate methods and data sources. Read each row for what it suits, what data it depends on, and what payroll or legal should review before go-live.

OptionSuitsDepends onSecond review before go-live
Overtime types with fixed categoriesEmployers with distinct overtime categories such as weekday, weekend or holiday hours, each tracked separatelyAttendance records, holiday lists and the shift or calendar that defines each categoryPayroll confirms each type maps to the rate the policy or contract states
Daily or period caps on overtime hoursPolicies that limit paid overtime per day, week or month, or that require approval above a thresholdAccurate check-in and check-out times, plus a clear rule for how capped hours are treatedLegal confirms the cap matches working time limits and whether excess hours must still be paid
Fixed hourly rateRoles paid a set amount per overtime hour regardless of salary compositionA stored hourly rate per employee or grade, and approved hours from attendance or manual entryPayroll checks the rate against contract terms and how it interacts with taxes and statutory deductions
Component-based rate tied to salary componentsPay policies that calculate overtime as a multiple of base pay or specific earningsSalary structure assignments, the components selected as the base and their current amountsPayroll tests the formula after any mid-year salary revision and confirms which components count as the base
Check-in based calculationSites with biometric or app-based punches where hours should follow recorded timeEmployee Checkin records, shift assignments and auto attendance running correctlyPayroll reviews rounding, grace periods and how missed punches are corrected before pay runs
Manually entered overtime hoursTeams without reliable punch data, or where supervisors approve hours outside the clockApproved overtime entries, approver records and supporting evidence kept for auditLegal and payroll confirm the approval trail meets the employer's record-keeping duties
Overtime slips in payrollOrganizations that want overtime shown as a separate line on the salary slipApproved overtime records linked to the payroll period and the salary structurePayroll confirms the slip line, taxes and deductions match the policy before the bank file is released

How overtime setup differs for hourly, salaried and shift staff

Hourly staff are usually paid a premium for every hour worked beyond the standard day or week, so the configuration starts with a clear rule for what counts as an overtime hour. In Frappe HR, the calculation depends on attendance or check-in records, an overtime type that sets the multiplier or fixed rate, and a threshold above which time is treated as overtime. The client must decide these points before configuring anything.

  • Attendance source: Confirm whether overtime is based on Attendance records, Employee Checkin punches or a manual overtime entry, since each produces different working hours.
  • Threshold: Define the standard hours per day or week that must be exceeded before overtime starts.
  • Rate basis: Decide whether the rate is a fixed hourly amount, a multiple of base pay, or a percentage of a salary component.
  • Daily and weekly caps: Set the maximum overtime hours allowed per day, and whether any weekly limit applies.
  • Approval step: Name who approves overtime before it reaches a payroll run.

Before configuration, check your local wage rules and collective agreements with your employment counsel, and confirm with the Frappe HR documentation how the overtime type and check-in fields behave in your version.

How check-in based calculation turns punches into overtime hours

Overtime in Frappe HR starts with the shift, not with the punch. Employee Checkin records feed attendance, and attendance is what the overtime calculation reads. In a typical setup, the shift assignment defines the start and end of the working day, and the expected working hours on that shift define the point after which extra time counts as overtime. If the shift says eight hours and the employee works nine, the difference is the candidate overtime, but only if the shift and attendance records agree on which day and which hours belong together. Before you run a test, check which shift is assigned to each employee on each date, because a wrong assignment moves every downstream number. The chain is check-ins, then attendance (often created by Auto Attendance based on the shift), then overtime hours used in payroll.

The main trade-off is between calculating overtime from check-ins and entering it by hand. Calculation from punches reduces manual entry and gives a consistent audit trail, but it depends heavily on clean punch data. A missing check-out, a device that stamps the wrong time, or two shifts overlapping on the same date can produce hours that look plausible and are wrong. Manual entry gives supervisors direct control over each approved hour, at the cost of admin time, delays and its own errors. Many teams use calculation for the bulk of staff and a documented manual path for exceptions, but the split should be a deliberate decision with an owner.

Before you rely on either route, confirm how your Frappe HR version treats missing punches, early and late punches, and overlapping shifts. Check whether an attendance record is created when only one punch exists, whether early arrivals before the shift start count toward overtime, and which shift wins when two assignments cover the same day. Run a sample month of real punches through attendance and overtime, and compare the result with what a supervisor approved. Ask your implementation partner to document those rules as a written test case, so the behavior is repeatable after each upgrade.

Setting up overtime in Frappe HR step by step

This sequence turns a written overtime policy into a tested Frappe HR configuration, so calculated overtime hours and overtime slips can be checked against the current process before any employee is paid from them.

  1. Confirm the written overtime policy

    HR and payroll leads agree in writing which hours count as overtime, how they are approved, whether time is paid or banked, which employee groups are covered, and what daily or weekly caps apply. Finance or the payroll owner signs off on the rules. The step is done when every rule that Frappe HR will need to reproduce can be traced to a signed policy line, and any gaps are listed as open questions for the business to answer before configuration starts.

  2. Define overtime types and rates

    Create the overtime types in Frappe HR that match the policy, such as weekday, rest day and public holiday overtime, and set each one's rate basis. Choose between a fixed hourly rate, a rate derived from salary components, or a multiplier on base pay, following what your payroll rules specify. Confirm the exact field names and calculation options against the Frappe HR version you run, since these settings vary by release. The step is complete when each type has a documented rate formula that a payroll reviewer can recompute by hand.

  3. Set shift and attendance rules that define overtime hours

    Overtime hours in Frappe HR come from attendance, so align shift types, grace periods, minimum hours and the rule that counts time beyond a scheduled shift with the policy. Check how check-in and check-out records feed attendance for employees on each shift, including night shifts that cross midnight. The output is a short rule sheet that maps every shift to the hours it can generate as overtime. Verify it by picking one shift, listing the expected overtime minutes for three sample days, and confirming the setup gives the same answer.

  4. Test the calculation on a small employee sample

    Choose a small group of employees that covers different shifts, overtime types and rate bases, then run attendance processing and the overtime calculation for a short past period. Compare each calculated overtime figure with a manual calculation from the raw check-in and check-out records. Investigate every difference, adjust the rules or attendance data, and rerun until the sample matches. The step is done when the sample shows no unexplained differences and the team has written down the cause of each correction made during testing.

  5. Configure how overtime slips enter payroll

    Decide how overtime slips are created and whether they feed the salary slip as an earning component, so the amount flows into the payroll run without manual re-keying. Set the payroll frequency and the period boundaries so overtime for a cut-off window lands in the correct pay run. Confirm the tax and accounting treatment with your payroll adviser, since overtime is often taxed like other earnings. The output is a documented path from an approved overtime slip to a salary slip line, which you verify by generating one test slip and tracing each amount back to its source.

  6. Run a parallel check before go-live

    Process one full payroll period in Frappe HR while the current overtime process still runs, then compare totals per employee and per overtime type. Include approvals, caps and any manual adjustments made by payroll in the comparison. Each variance is recorded with its cause, either a configuration fix or a difference in the written policy that needs a decision. Go-live is confirmed only when the parallel results agree within the tolerance the payroll owner has approved in writing, and the approvers have signed the first live run.

What to confirm before promising overtime pay rules

Overtime rules in Frappe HR only hold up if the legal, contractual and technical inputs behind them are settled first. The cards below cover the items to verify in your environment before a scope promises automatic overtime pay, so that the configured rules match what your payroll must actually produce.

Labor law limits by jurisdiction

Confirm the statutory caps on overtime hours, the premium multiplier for overtime hours, and any rules on rest periods and maximum weekly hours that apply to each country and employee group where you run payroll. A daily cap or hourly rate configured in Frappe HR is only as correct as the law it encodes, and labor rules differ by jurisdiction and sometimes by sector. Ask your employment counsel to sign off the parameters in writing before they are entered as overtime types.

Frappe HR and ERPNext versions

Record the exact Frappe HR and ERPNext versions in use, plus the Frappe Framework version, before you design overtime slips. Supported lines differ in their support windows, and the overtime and payroll behavior you rely on should be checked against the release you will run, not an older one. Plan the upgrade path now if your version is near the end of its support window, because overtime logic changes are easier to test once than twice.

Need for Server Scripts

Decide whether any overtime rule needs custom Python before you rely on it. Server Scripts are disabled by default from version 15 and must be enabled with the server_script_enabled setting, and Frappe Cloud public shared benches do not allow them at all. If your rule needs them, confirm the hosting model first, because a rule that cannot run on the chosen platform is a scope change, not a configuration detail.

Collective agreements and contracts

Check how any collective agreement, works council decision or individual contract treats overtime, including whether overtime is paid, banked as time off, or limited to specific grades. Those terms often differ from the statutory baseline and decide which overtime types, approval steps and component rates you need. Ask for the clause text itself rather than a summary, so the mapping to Frappe HR overtime types is traceable.

Reliability of check-in data

Assess whether your check-in source is accurate enough to drive automatic overtime. Confirm how punches are captured, whether employees forget to check out, how shift-based attendance is assigned, and who corrects missing or duplicate punches before payroll runs. If the source is unreliable, plan a manual review step in the overtime slip workflow rather than trusting the calculation alone.

Where overtime slips fit in payroll and what happens when hours change

Overtime slips sit between attendance and the payroll run, so every correction to hours or approvals has to pass through that chain in order. Once a salary slip for the period has been submitted, paid and posted to accounts, changing the underlying check-ins or overtime approval does not rewrite history. Treat the period as closed for practical purposes and plan a controlled correction instead. Before the build starts, agree who may reopen a period, who approves a corrected overtime slip and where the audit trail for each change will be kept, since these decisions determine whether a late punch becomes a routine fix or a payroll incident.

The first option is to correct in the next cycle: the overtime difference is calculated as a separate component and paid or deducted on the following salary slip. This keeps closed periods untouched and keeps the bank and journal entries of the earlier run intact, which suits small corrections and most late approvals. The second option is to reopen the closed payroll period, amend the affected slips and repost. This gives a cleaner monthly record but changes figures that have already left the business, so it usually needs a senior sign-off and a reconciliation of the payout. Confirm with your own payroll and finance owners which threshold moves a correction from the first path to the second, and confirm in your Frappe HR version how amended slips and cancelled entries behave.

Whichever path you choose, check the accounting impact in ERPNext before any correction is posted. Review the journal entries linked to the original payroll entry, the payable and expense accounts the overtime component hits, and any bank entry already reconciled against the payout. A corrected slip that changes the gross but not the net, or the reverse, can leave an unreconciled difference that only surfaces at period close. Run the correction in a test site or a sandbox copy of the data first, compare the ledger effect line by line, and record the approver and reason against the correction so that the accounting team and any later auditor can trace it.

Access, audit and data protection for overtime records

Overtime records sit at the join between attendance, payroll and sign-in, so a weak link in any one of them exposes pay data. The cards below cover who can edit and approve overtime, how changes are traced, how role permissions protect payroll, which scripting options a hosting model allows and how the sign-in layer decides who reaches HR data.

Editing and approving attendance

Overtime hours are derived from attendance check-ins, so anyone who can edit an attendance record or a check-in can change what is paid. Decide which HR users may correct punches, which may create overtime or salary-slip entries, and whether a supervisor approves overtime before payroll runs. Write these rules down as separate roles, then test that a user without the approver role cannot approve their own overtime. Confirm the exact doctype permissions in your version before go-live.

Tracing changes for audit

Before an auditor or a payroll dispute asks, you need to show who changed a check-in, an attendance record or an overtime slip and when. Confirm which of these documents keep version history and which only keep their final state. Agree on a correction process, such as cancelling and amending a document rather than overwriting it, so the original stays visible. Test this with a sample overtime correction and check what the audit trail actually shows.

Role permissions over payroll data

Salary slips, salary structures and overtime rates carry sensitive pay information that most managers should never see. Restrict these doctypes by role, and use user permissions where a manager should only see their own department. Check that reports and list views do not leak amounts through a side door, since a report can expose fields that a form hides. Review these permissions whenever a role is added or a department is restructured.

Custom scripts on shared benches

Overtime rules are often enforced with Server Scripts, which must be enabled with the server_script_enabled setting in version 15 and later. Frappe Cloud public shared benches do not allow Server Scripts, so a rate or cap rule written as a script will not run there. Decide early whether the rule lives in a script, in a component formula or in a custom app on infrastructure you control, and confirm the hosting model before you design the calculation.

Sign-in and who reaches HR data

ERPNext supports LDAP login through LDAP Settings and social login through Social Login Key. Each sign-in method decides who can authenticate, and LDAP group mapping assigns ERPNext roles at each login, so a directory group change can grant or remove HR access. Confirm the role mapping for HR users with your identity team, test a leaver account, and make sure social login cannot create accounts that bypass the directory.

What does overtime setup cost and how long does it take?

What drives the cost of setting up overtime in Frappe HR?

The main drivers are the number of workforce groups that follow different overtime rules, how many rate rules each group needs, how complex the shift patterns are, the quality of attendance punch data, and how much the overtime slips must feed into payroll. Each group with its own threshold, cap or rate multiplies the configuration and testing work. Messy punch data from biometric or RFID devices adds cleaning and rule exceptions before any calculation can be trusted. Integration with the payroll structure and salary components usually takes the most review time, because overtime must land in the right earnings and taxes. Ask each partner to price these items separately so you can see which ones your own data and policies push up.

Can our HR team configure Frappe HR overtime without outside help?

A capable team with ERPNext and Frappe HR experience can configure overtime types, attendance-based calculation and overtime slips in-house, especially for a single workforce group with simple rules. The harder part is agreeing the rules before any configuration starts, testing them against real attendance history, and confirming how the results flow into payroll and accounting. If your rules involve several groups, shift-based thresholds or component-based rates, a partner can document the design and run test payrolls alongside your team. Whichever route you choose, confirm the approach against the current Frappe HR documentation for your installed version.

What does our HR and payroll staff need to provide?

The work depends on decisions that only your organization can make. HR must supply the written overtime policy, including what counts as overtime, daily and weekly caps, approval steps and any rest or public holiday rules. Payroll must confirm how overtime is paid, whether as a fixed hourly rate or a multiple of a salary component, and which earnings and tax treatment apply. Both teams should provide a sample of attendance records and a set of past overtime payments to test against. Plan for these people to review test results across several pay cycles, since errors often appear only when a period closes.

How long does overtime setup take, and what determines the timeline?

Duration depends mainly on how quickly your organization settles its overtime policy, not on the software itself. Once rules are agreed, the configuration work is usually bounded, but testing against historical punches, correcting data quality issues and running parallel payroll runs add time. Integrations with biometric devices or shift schedules can extend the plan if they are not already in place. Frappe HR also changes between versions, so the platform version you run affects the testing effort. Ask for a timeline with milestones tied to policy sign-off, data readiness and payroll test cycles, rather than a single end date.

What should a fixed-scope overtime quote list?

A written fixed-scope quote should name the workforce groups covered, each overtime type and its rule, the rate method for each group, and the attendance source used for calculation. It should list the Frappe HR and ERPNext versions in scope, the salary components and structures it changes, and the payroll slips it must produce. Include the testing method, the number of test payroll cycles, and who signs off results. Also list what the client must supply, such as the written policy and sample data, and what is excluded, such as device hardware, integrations with other systems or statutory changes in other countries.

Is overtime setup a one-time cost or does it recur?

The initial configuration, policy translation and testing are one-time costs. Recurring costs appear when policies change, when new workforce groups or locations are added, when Frappe HR or ERPNext is upgraded, or when payroll rules need correction after an audit or a dispute. Some organizations also pay for ongoing support or a retainer to handle these changes. Ask any provider to separate one-time work from optional support, and to state how change requests to overtime rules are scoped and priced after go-live.

What risks can change the cost or timeline of overtime work?

The most common risks are unclear or conflicting overtime policies, inconsistent punch data across devices or sites, and late decisions on how overtime is taxed or reported. Overtime rules that depend on local labour law may also need legal review that sits outside the implementation work. Each of these risks should appear in the written scope as an assumption, with a named owner and a stated effect on the plan if it changes. This makes it clear when a change request is needed and keeps disputes about extra effort to a minimum.

How DeployOpen scopes and delivers overtime work in Frappe HR

DeployOpen plans, configures, tests and documents overtime in Frappe HR inside your own infrastructure, starting from your pay rules and attendance sources. Each engagement is agreed in writing before work starts, so the overtime types, rate logic and slip checks are settled before anything is built.

How we scope

  • Written scope lists the overtime types, caps and rate rules your pay policy requires for each employee group.
  • We confirm where check-in data comes from, including biometric devices, the check-in API or manual entries.
  • Scope names the payroll entries, slip reviews and accounting checks that overtime must pass before payout.

How we build

  • We configure overtime types, daily caps and fixed or component-based rates in a staging copy of your Frappe HR site.
  • Test cases cover shift crossings, missing punches, holidays and employees on mid-period salary revisions.
  • Any custom logic is kept in a versioned custom app so it can be reviewed, redeployed and upgraded later.

How we hand over

  • Documentation describes each overtime rule, its inputs, its effect on the overtime slip and who approves changes.
  • Your payroll team runs a supervised payroll cycle with us, reviewing slips and accounting entries before go-live.
  • Handover includes a runbook for corrections, reruns and rule changes made when pay policy changes.

How we support

  • Ongoing support, upgrades and testing of overtime rules are available as a retainer after handover.
  • Retainers can cover upgrade testing when Frappe HR or ERPNext releases change payroll or attendance behavior.
  • Confirm response expectations and included upgrade work in the written retainer before you sign.

Sources and further reading

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.