TRANSPARENT BY DESIGN

How We Calculate Hours and Pay

The formulas, assumptions, and limits behind every result.

1. Shift duration and overnight work

Clock times are parsed into whole minutes. With clock-face calculation, we subtract the starting clock minute from the ending clock minute. If the end is earlier, we add 24 hours and mark the shift as ending the next day. Equal start and end times mean zero hours unless you explicitly select next day, which means 24 clock hours.

10:00 PM → 6:00 AM next day
1,800 − 1,320 = 480 minutes = 8h 00m

A single shift is limited to 24 clock hours. Enter longer work as separate entries. Each shift is assigned to its starting date; split work at a workweek boundary if your payroll policy requires that allocation.

2. Paid and unpaid breaks

Only unpaid breaks are subtracted. Paid breaks stay in work hours. A break can be a minute duration or a clock-out/clock-in interval. We reject incomplete break times, intervals outside the shift, overlapping break intervals, and combined breaks longer than the original shift.

Work minutes = shift minutes − unpaid break minutes
480 − 30 = 450 minutes = 7h 30m

Overlaps cannot be detected for breaks supplied only as durations. Do not enter a duration and an interval for the same break. Federal rest-break and meal-period rules depend on the circumstances; the calculator never classifies a break as paid or unpaid based only on its length.

3. Decimal hours

Decimal hours = total minutes ÷ 60
450 ÷ 60 = 7.5 hours

Time-card calculations keep whole minutes until display. Decimal output uses four places to make the conversion easy to check; the value shown in a report is a display value, not a replacement for the underlying minutes.

To convert decimal hours back to hours and minutes, multiply by 60 and round to the nearest whole minute. For example, 8.3 hours × 60 = 498 minutes, which is 8 hours 18 minutes.

4. Optional quarter-hour rounding

Rounding is off by default. When enabled, each clock-in and clock-out punch is independently rounded to the nearest 15 minutes. Whole-minute values 1–7 in a quarter round down; 8–14 round up. A rounded punch can cross midnight. Break durations and break punches are not rounded.

9:07 AM → 9:00 AM
9:08 AM → 9:15 AM
11:58 PM → 12:00 AM next day

A rounding policy must be neutral over time and cannot systematically reduce recorded work. We flag an unpaid break that exceeds the rounded shift. The original entries remain visible in the report alongside the selected rounding policy.

5. Weekly and custom daily overtime

The default weekly threshold is 40 hours, with a 1.5× pay multiplier. Each seven-day group is a separate workweek. Align the first report date with your employer’s workweek boundary. Weekly overtime can be turned off or customized.

Weekly overtime = max(0, weekly work − threshold)
45h + 35h over two weeks → 5h overtime

For the optional custom daily rule, we first count hours above the daily threshold. We exclude those minutes from the weekly regular-hour pool, then apply the weekly threshold to what remains. This avoids charging the same minute twice.

A daily 8-hour threshold is not a universal U.S. rule. The custom mode does not implement a complete California calculation, double time, seventh-day rules, exemptions, or alternative workweek arrangements.

6. Estimated gross pay

The hourly rate is optional, is entered in U.S. dollars with up to two decimal places, and applies to the whole report. The multiplier accepts up to three decimal places and must be at least 1. Pay is calculated from integer minutes and integer cents, then rounded once to the nearest cent (half up).

Gross pay = regular hours × rate
+ overtime hours × rate × multiplier
75h × $25 + 5h × $25 × 1.5 = $2,062.50

This is a simple gross-pay estimate. It does not include tax withholding, leave, deductions, bonuses, multiple pay rates, blended regular-rate calculations, double time, or every legal exception.

7. Actual elapsed time and daylight saving

Clock-face time is the default. Enable actual elapsed time in Advanced to use the shift date and IANA time zone. We resolve each local punch to an instant and subtract the instants. This accounts for daylight saving transitions rather than assuming every night has the same number of elapsed hours.

In America/New_York on March 8, 2026, 1:00 AM–4:00 AM is 2 elapsed hours. On November 1, 2026, midnight–4:00 AM is 5 elapsed hours. The date and zone are essential to those results.

Repeated or skipped local times are rejected by default. You may choose an earlier or later resolution. For a repeated hour this selects the occurrence; for a skipped hour it shifts the time across the daylight saving gap. Use the occurrence or corrected time that matches your actual record.

8. Validation and review

Incomplete or invalid entries block a complete report and export. A blank day contributes no hours. The core is checked with examples for overnight shifts, break validation, 7-minute rounding, independent workweeks, decimal conversion, monetary precision, and daylight saving transitions.

If a result does not match your expectation, prepare feedback containing the inputs, settings, and expected output. Leave out identifying payroll details.

Sources

Examples reviewed by HoursCounter on October 1, 2026. References describe particular rules; your actual applicability should be checked separately.