How to Calculate Work Hours Accurately
A practical guide to totalling shift hours, handling unpaid breaks, converting minutes to decimal, and avoiding the most common payroll errors.
Calculating work hours sounds straightforward until the edge cases arrive — overnight shifts, multiple unpaid breaks, daylight saving time, and payroll systems that want decimal hours instead of HH:MM. Getting these details right matters whether you track your own hours, approve a team's timesheets, or run payroll for dozens of employees. This guide walks through every step so you can produce accurate totals every time.
The Basic Formula
For a standard day shift, the formula is simple:
Hours worked = End time − Start time − Unpaid break time
If someone starts at 09:00 and finishes at 17:30 with a 30-minute unpaid lunch, they have worked 8 hours. In longer form: 17:30 − 09:00 = 8 hours 30 minutes, minus 30 minutes = 8 hours exactly.
Converting HH:MM to Decimal Hours
Payroll software almost always expects hours in decimal format — 8.5 rather than 8:30. To convert, divide the minute portion by 60 and add it to the whole hours:
- 7 hours 15 min → 7 + (15 ÷ 60) = 7.25 h
- 9 hours 45 min → 9 + (45 ÷ 60) = 9.75 h
- 6 hours 20 min → 6 + (20 ÷ 60) = 6.33 h (rounded to 2 dp)
Multiply decimal hours by the hourly rate and you have gross pay before deductions. Forgetting to convert and multiplying 8:30 × hourly rate (treating 8:30 as 8.30) is one of the most common payroll errors and overpays by about 20 minutes every day.
Handling Multiple Breaks
Some shift workers take two or three breaks. Every unpaid break must be subtracted. Suppose a worker clocks in at 08:00 and out at 17:30, taking a 30-minute lunch and two 15-minute rest breaks (both unpaid):
- Raw time: 17:30 − 08:00 = 9 h 30 min = 9.5 h
- Total unpaid break: 30 + 15 + 15 = 60 min = 1.0 h
- Net paid hours: 9.5 − 1.0 = 8.5 h
If rest breaks are paid (as they are in many jurisdictions), only subtract the unpaid lunch. Always confirm your workplace policy — paid vs. unpaid status for each break type must be consistent across all employees.
Overnight and Cross-Midnight Shifts
A shift starting at 22:00 and ending at 06:30 requires a small adjustment. Because the end time is numerically less than the start time, add 24 hours to the end time before subtracting:
- Adjusted end time: 06:30 + 24:00 = 30:30
- Hours worked: 30:30 − 22:00 = 8 h 30 min = 8.5 h
Good time-clock software stores entries as timestamps rather than clock faces, so it handles this automatically. If you're calculating on paper or in a spreadsheet, remember to apply the 24-hour correction every time the end time is earlier than the start time.
Clock Rounding Rules
Some employers apply a 15-minute (quarter-hour) rounding rule. Under the most common version, entries within 7 minutes before a quarter hour round down; entries within 8 minutes or more round up. So 8:07 becomes 8:00, while 8:08 becomes 8:15.
Rounding is legal in many jurisdictions provided it averages out in favour of employees over time — it cannot consistently reduce pay. To stay compliant, apply the same rounding rule to both clock-in and clock-out times, and review rounding patterns quarterly to confirm they're not systematically cutting into employee pay.
Daylight Saving Time Adjustments
DST moves clocks one hour forward in spring and one hour back in autumn. For night workers, this creates a 7-hour shift on the forward night and a 9-hour shift on the fall-back night. Labour law in most regions requires payment for the actual hours worked, not a notional 8-hour standard.
If your payroll system stores times in UTC and converts for display only, DST is handled correctly by default. If it stores local clock times, you must make a manual one-hour adjustment for overnight shifts on the two DST crossover days each year.
Building Weekly Totals and Spotting Overtime
To find a weekly total, sum each day's decimal hours:
| Day | Hours (decimal) |
|---|---|
| Monday | 8.50 |
| Tuesday | 9.00 |
| Wednesday | 8.00 |
| Thursday | 9.50 |
| Friday | 7.75 |
| Total | 42.75 |
This employee has worked 42.75 hours against a 40-hour threshold, generating 2.75 overtime hours. If overtime is paid at 1.5× the base rate, the calculation is: 40 h × base rate + 2.75 h × (base rate × 1.5).
Common Mistakes and How to Avoid Them
- Not converting HH:MM to decimal before multiplying by an hourly rate.
- Double-subtracting breaks that are already excluded by the time-clock system.
- Using the wrong time zone for remote employees or distributed teams.
- Ignoring DST on the two overnight crossover dates each year.
- Rounding intermediate values instead of waiting until the final total — small rounding errors compound across a large workforce.
- Inconsistent break policies — paid vs. unpaid status must be the same for all employees in the same role.
Record-Keeping Requirements
Most jurisdictions require employers to retain payroll records for three to five years. Store both the raw clock-in/out timestamps and the derived totals. If a time dispute arises later, being able to show every step from raw timestamp to gross pay figure makes resolution much faster and demonstrates good-faith compliance.
Using a Work Hours Calculator
When you're dealing with multiple employees or variable shift patterns, manual calculation becomes error-prone. CalcTap's Work Hours Calculator lets you enter start time, end time, and break duration for each day of the week. It outputs totals in both HH:MM and decimal format, flags overtime automatically, and handles the midnight-crossing adjustment without any extra steps. Use it to double-check manual timesheets or as a primary tool for small teams that don't yet have dedicated payroll software.