KangarooClock

← Blog

Decimal Hours vs HH:MM: What Payroll Wants

· 4 min read

Decimal hours means a length of time written as a single base-10 number, where the fractional part is a share of one hour, so 7 hours and 30 minutes becomes 7.5 and 15 minutes becomes 0.25. It is the same duration as HH:MM. It just uses a different unit after the decimal point. That difference is exactly where timesheets go wrong.

Your kiosk or spreadsheet says a tutor worked 7:30. A colleague types 7.30 into the pay run. Those are not the same amount of time. 7:30 is seven and a half hours. 7.30 is seven hours and eighteen minutes. The gap is twelve minutes on one shift, and it compounds across a whole roster and a whole pay period.

Why HH:MM and decimal hours disagree

HH:MM counts minutes out of 60. Decimal hours counts hundredths out of 100. Sixty minutes and one hundred hundredths both describe a full hour, so the same fraction of that hour lands on a different number depending on which scale you use.

Half an hour is 30 out of 60 minutes, which is 0.5 of an hour. Written as HH:MM it looks like the digits "30." Written in decimal it is "50." Anyone who reads 7:30 and types 7.30 has silently shaved 0.2 of an hour off the shift. Do that on ten timesheets and you have underpaid two full hours of work.

The conversion, exactly

To turn HH:MM into decimal hours, divide the minutes by 60 and add them to the hours. That is the whole rule.

  • 15 minutes = 15 / 60 = 0.25
  • 20 minutes = 20 / 60 = 0.333... (round to 0.33)
  • 30 minutes = 30 / 60 = 0.5
  • 45 minutes = 45 / 60 = 0.75
  • 50 minutes = 50 / 60 = 0.833... (round to 0.83)

So a shift of 7:30 is 7 + 0.5 = 7.5 decimal hours. A shift of 6:45 is 6.75. A shift of 8:20 is 8.33. To go the other way, multiply the decimal part by 60: 0.4 hours is 0.4 x 60 = 24 minutes, so 3.4 hours is 3:24. If you want a fuller reference with worked examples, the definition of decimal hours lays out the edge cases, including how rounding thirds behaves.

Which format payroll actually wants

Payroll wants decimal hours, in almost every case. Pay is a multiplication: hours times rate. A rate of $18 per hour times 7.5 hours is $135, one clean sum. Try that with 7:30 and the arithmetic stalls, because $18 times "7:30" is not a defined operation. Every payroll system and every spreadsheet formula expects a plain number in the hours column.

The failure mode is not that decimal is hard. It is that people mix the two. Someone reads a total in HH:MM off a printed sheet and enters it as though it were already decimal. The number looks reasonable, so nobody catches it. Twelve minutes here, eighteen there, and the grant report or the pay run is quietly off.

Two habits prevent this. First, decide on one format for the number that leaves your building and label the column. If the header says "hours (decimal)" nobody has to guess. Second, do the conversion once, mechanically, rather than in your head across dozens of rows. A tool that converts decimal and HH:MM both ways removes the mental math entirely, and the time card calculator totals a day's punches and hands you the decimal figure directly.

How to keep the format consistent from clock-in to pay run

The cleanest approach is to never let raw HH:MM strings reach the person doing payroll. Track the times, then export a total that is already decimal and already labeled. Kangaroo Clock records when each worker started and stopped, then its CSV export with a stable column schema gives you a duration you can drop into a pay run without retyping anything. The column layout does not shift between exports, so a formula you wrote last month still points at the right cell this month.

That matters most at the totals level. A single shift converted by hand is easy. A biweekly period with forty entries across a dozen people is where a stray 7.30 hides. Let the export sum the durations, and check the two-week total against your own count before you send it. If the two numbers agree, the format was handled correctly all the way through.

One more source of quiet error: a forgotten clock-out. If a worker never taps out, a naive total can run to twelve or fourteen hours and blow up the decimal figure. Kangaroo Clock closes a stale entry at its start time plus a cutoff rather than at the current moment, so a missed punch does not balloon into an impossible decimal total. You can read how that cutoff works in the auto-close entry.

The short version to hand anyone on your team: read the colon as minutes, read the dot as hundredths, and never copy one into the field meant for the other. When in doubt, run the number through a converter and paste the decimal result. Get the format right at the export step and the rest of the pay run stops fighting you.

Tags: payroll, time tracking, terminology, reporting

See it in your own setup

No signup needed. Add a few names, share a kiosk URL, watch hours land.

Try the demo →