How it works
- HR sets the payout to money, or to the employee's choice, and fills in the three multipliers in the overtime policy.
- While a request is pending, its detail shows an estimated amount from the current salary structure.
- On the final approval ZeniaHR takes the monthly gross from the employee's active salary structure and divides it by 30 to get the gross day rate.
- It divides the day rate by 8, then multiplies by the approved hours and by the multiplier for the kind of day.
- The amount is added as an overtime earning in Direct Payroll for the month of the day, and appears on the payslip.
- If the payout does not go through, for example because the employee has no salary structure yet, the request shows Not paid yet and HR uses Pay again.
What you can set
- Payout: money, comp-off, or the employee's choice.
- Multiplier on working days, from 1 to 5; it starts at 1.5 in a new policy, so set it to 2 or more.
- Multiplier on weekly offs, from 1 to 5, 2 by default.
- Multiplier on holidays, from 1 to 5, 2 by default.
- Base: monthly gross divided by 30 gives the gross day rate, and that divided by 8 gives the hourly base.
- Payroll month: the month in which the overtime was worked.
- Pay again: retries a payout that did not go through.
Paying at least twice the ordinary rate
Under the OSH Code, overtime is paid at twice the ordinary wage rate. ZeniaHR does not choose your multipliers; you set them, separately for working days, weekly offs and holidays. Weekly offs and holidays start at 2 in a new policy and working days at 1.5, so raise the working-day multiplier to 2 before you switch overtime on. If your standing orders pay more for holiday work, set a higher holiday multiplier. The glossary entry on overtime wages covers the basics.
Worked example: overtime pay for a Chennai lab technician
Meera Iyer is a lab technician at a Chennai diagnostics chain with a monthly gross of ₹24,000. Her gross day rate is ₹24,000 divided by 30, which is ₹800, and her hourly base is ₹800 divided by 8, which is ₹100. The company's multipliers are 2 on working days, 2 on weekly offs and 2.5 on holidays.
In October she has two approved requests. On a working day she stayed 2 hours 30 minutes beyond her full day, which pays 2.5 hours at ₹100 at a multiplier of 2, or ₹500. On Gandhi Jayanti, a holiday, she worked 6 effective hours at a health camp, which pays 6 hours at ₹100 at 2.5, or ₹1,500. ZeniaHR adds ₹2,000 of overtime earnings to her October payroll, and both lines appear on her payslip.
Checks before the payroll run
Overtime money lands in payroll as an input, so the usual payroll checks catch most problems. A few checks specific to overtime avoid the common surprises in the first months after you switch it on, and they take only a few minutes in each payroll cycle.
- Make sure everyone who can earn overtime has an active salary structure.
- Look for requests marked Not paid yet and use Pay again once the cause is fixed.
- Compare Money approved on the Overtime page with the overtime inputs in the payroll run.
- Walk staff through the formula once, with their own numbers, so the payslip line makes sense.
See overtime pay calculation in a demo
We show it on a video call with your own shifts, leave types and rules. Free for your first 50 employees.
Book a free demoSee pricingFrequently asked questions
How is overtime pay calculated in ZeniaHR?
The amount is the gross day rate divided by 8, times the approved hours, times the multiplier for the kind of day. The gross day rate is the monthly gross from the employee's salary structure divided by 30. For a monthly gross of ₹24,000, 2.5 hours at a multiplier of 2 comes to ₹500.
Can weekly offs and holidays have a different overtime rate?
Yes. The overtime policy has three multipliers: one for working days, one for weekly offs and one for holidays, each from 1 to 5. ZeniaHR picks the multiplier from the kind of day the overtime was worked on, so holiday work can be paid at a higher rate than a weekday evening.
Why does an approved overtime request show Not paid yet?
The payout could not be applied when the request was approved, most often because the employee had no active salary structure, so no amount could be worked out. Fix the cause, then open the request on the Overtime page and use Pay again. The payout is applied once, never twice.