Why 7:75 is rejected instead of fixed
Minutes carry at sixty. A field containing 7:75 has no meaning as a clock time, and there are two things a program can do about it. It can decide the writer meant 8:15 and silently move on, or it can refuse the line and say so. The first is friendlier and occasionally invents eighteen minutes of paid time out of a slipped finger. The second is what happens here.
The same rule applies to an hour value above 24, to a break longer than the shift, and to an impossible calendar date such as 02/30. Every rejected line is listed with the reason and left out of every total, so a sheet that reads as complete is complete. The counterpart to that strictness is that the tool is generous about formats it can read unambiguously: 8:00, 8am, 08:00 and 0800 are all the same time, and 5pm and 17:00 are the same time.
Shifts that cross midnight
A shift entered as 22:00 to 6:00 ends eight hours after it starts, on the following day. That is the one inference this page makes, and it marks every instance with a +1 in the table so you can see where it made it. It is a safe inference for a night shift and a dangerous one for a typo, because eight extra hours hide well in a column of eight hour days. Check the flagged rows before the sheet goes anywhere.
The alternative design would be a separate end-date column, which is more correct and which nobody fills in properly. Flagging the assumption is the compromise.
Rounding, and the fact that it is regulated
Rounding each shift to the nearest quarter hour, tenth of an hour or five minutes is a common payroll practice with a long history. It is also a practice with rules attached, and those rules are not the same everywhere: what is permitted, whether it must be neutral rather than always in the employer's favour, and whether it is allowed at all in a given jurisdiction are questions for a payroll adviser and not for a calculator. The increment here defaults to no rounding for that reason.
When you do turn it on, the tool rounds each shift and then adds the rounded values, and it reports how many shifts moved and by how much in total. That drift figure is the interesting one. If rounding is systematically taking time off the sheet rather than moving it in both directions, the number will show it.
The week boundary decides the overtime
Which hours sit above a weekly threshold depends entirely on where the week starts, and that is a policy choice, not a fact about calendars. The same fourteen shifts split differently across a Sunday week and a Monday week, and a person can be over the threshold in one arrangement and under it in the other. Set the field to whatever your written workweek actually is and keep it consistent, because moving the boundary around between periods is how the same hours get paid twice or not at all.
The threshold and multiplier are fields too. Overtime obligations are federal and state law, they turn on how each worker is classified, some states apply a daily threshold this page does not model at all, and none of it is something a web page should be asserting. Put in your own figures and take the arithmetic, not the rules.
Decimal hours are where sheets and payroll disagree
7:45 on a clock is 7.75 hours in a payroll field. Typing 7.45 is the single most common transcription error on a hand-keyed sheet, and it costs eighteen minutes every time. Every row here prints both forms side by side specifically so that the conversion is not done in anyone's head. If your payroll system wants a particular number of decimal places, match it in the system rather than pre-rounding here, and check once whether it truncates or rounds.
For adding up a list of durations that were never clock times — billable blocks written as 1:30, 45m and 2h 15m — the work time log tally is the better shape. For a blank grid to fill in by hand, the attendance sheet maker prints one, and the shift rotation maker builds the roster the hours will eventually be worked against. For what an hour of somebody's time actually costs the business once everything beyond the wage is counted, see the employee total cost calculator.
Questions people ask
Why was my line rejected when the time looks fine?
Read the reason in the rejection table — it names the specific problem. The frequent causes are a minute value above 59, a date that does not exist such as 02/30, a break longer than the shift, and a start time identical to the end time. A line needs at least four columns: name, date, in and out. The break column is optional and defaults to zero.
How do I handle an unpaid lunch?
Put the minutes in the break column and they come off the shift. If a person takes two breaks, add them together into one number, because the sheet cares about total unpaid minutes and not about when they fell. If a break is paid under your policy, leave it out of the column entirely — the tool has no concept of paid and unpaid breaks and simply subtracts whatever you give it.
Does this work out overtime correctly?
It applies the threshold and multiplier you type, to weeks that begin on the day you choose. That is arithmetic, not compliance. Real overtime obligations depend on federal and state law and on how each worker is classified, several states apply a daily threshold as well as a weekly one, and some arrangements have their own rules entirely. None of that is modelled here. Use the numbers your payroll adviser gives you, and treat the output as a working total rather than a determination.
Can I use this for contractors billing by the hour?
Yes, and it is a cleaner fit than payroll because none of the classification questions arise. Leave the threshold blank so everything is at one rate, put each person's rate in the rates box, and the per-person totals are your billing summary. If you are setting that rate rather than applying one, the freelance rate calculator and the freelance pricing guide approach it from the other end.
Where does the data go?
Nowhere. The page is static, the arithmetic happens in JavaScript in your browser, and there is no request to any server while you type. Nothing is stored and closing the tab discards it. That also means there is no autosave, so if you are keying in a long sheet, keep the source text somewhere of your own.