How PunchedHours calculates
Every rule, where it comes from, and the tests it has to pass.
This page is generated from the same rule definitions and test cases the calculators use. If a rule changes, this page changes with it.
Times and durations
- Every time is converted to whole minutes after midnight. 9:30 AM is 570. No date or time zone library is involved.
- A shift's length is clock-out minus clock-in. If clock-out is earlier, the shift ends the next day and 1,440 minutes are added first. A shift is counted on the day it started.
- The same clock-in and clock-out time counts as 0 hours, unless Next day is ticked, which makes it 24 hours. One shift can't be longer than 24 hours.
- Totals use only rows without errors. If any row has an error, the result says so.
Breaks
- Up to 3 breaks per day, each marked paid or unpaid. Unpaid breaks come off the day's total.
- New breaks under 20 minutes default to paid, following 29 CFR 785.18.
- An automatic deduction applies only on days with no break entered.
- Breaks longer than the shift are an error. A day never goes negative.
Rounding
- Off by default.
- 5, 6, or 15 minutes, to the nearest mark, with exact halves rounded up. Quarter-hour rounding is the 7-minute rule.
- Applied to each punch (29 CFR 785.48(b)) or to the daily total, as you choose.
- Overnight punches are rounded on a continuous clock, so 11:53 PM rounds to 24:00 rather than wrapping to 0:00.
- Order: read the time, place it on the continuous clock, round, take the duration, then subtract breaks.
Decimal hours and money
- Decimal hours are rounded to two places, halves up. They are for display only.
- Pay is calculated from minutes and rate in whole cents. Each pay line (regular, overtime, double time) is rounded once, and gross pay is the sum of the lines.
- Currency changes the symbol only.
Overtime
- Overtime is calculated per workweek. A biweekly sheet runs the rule twice, once per week.
- Order: daily thresholds first, then the seventh-day rule where it applies, then weekly overtime on the remaining regular hours, moved from the last day backwards. No hour is paid twice.
- Every result must satisfy regular + overtime + double time = total hours, with no negative values.
| Rule set | Daily | Weekly | Seventh day | Source | Verified on | Status |
|---|---|---|---|---|---|---|
| Federal (FLSA) | None | Over 40 h | None | 29 U.S.C. § 207(a)(1) | 2026-11-01 | Active |
| California | Over 8 h, over 12 h at 2× | Over 40 h | First 8 h at 1.5×, then 2× | Cal. Labor Code § 510(a) | 2026-11-01 | Active |
| Alaska | Over 8 h | Over 40 h | None | AS 23.10.060 | 2026-11-01 | Active |
| Nevada | Over 8 h | Over 40 h | None | NRS 608.018 | 2026-11-01 | Active |
| Colorado | Over 12 h, or 12 consecutive h | Over 40 h | None | COMPS Order #40, 7 CCR 1103-1, Rule 4.1.1 | 2026-11-01 | Active |
Nevada: Daily overtime applies only with "Paid less than 1.5× the Nevada minimum wage" on and the four 10-hour days option off. A Nevada workday is the 24 hours from the start of work. The calculator counts each shift on the day it started.
- California: Alternative workweek schedules (Labor Code § 511) are not modelled.
- California: A shift counts in full on the day it started, even when it runs past midnight.
- Alaska: AS 23.10.060(d) lists exemptions, including voluntary flexible-hour plans of up to 10 hours a day.
- Alaska: A shift counts in full on the day it started, even when it runs past midnight.
- Nevada: Daily overtime applies only if you are paid less than 1.5 times the Nevada minimum wage.
- Nevada: A Nevada workday starts when you start work. A shift that starts less than 24 hours after the previous one began is flagged.
- Nevada: Businesses with gross sales under $250,000 a year are exempt (NRS 608.018(3)).
- Colorado: Only an unpaid meal break of 30 minutes or more ends a run of consecutive hours (Rule 5.1).
- Colorado: Breaks are entered as minutes, not clock times. A day with an unpaid meal of 30 minutes or more is not counted toward 12 consecutive hours, and it ends any run carried over from the day before.
- Colorado: A shift counts in full on the day it started, even when it runs past midnight.
- Colorado: Rule 2 exemptions (for example agriculture and medical transport) are not modelled.
Daylight saving time
Totals use clock times as entered. If you give a week start date, shifts that cross a US daylight saving change are flagged with the size and direction of the difference. They aren't corrected automatically, because employers handle the change in different ways.
Test cases
Each case below runs as an automated test before every release. Inputs, expected result, and the rule it checks.
| Case | Input | Expected | Rule | Source |
|---|---|---|---|---|
| Federal: 45 hours in one week | 9:00, 9:00, 9:00, 9:00, 9:00 | 40:00 regular, 5:00 OT, 0:00 DT | Federal (FLSA) | 29 U.S.C. § 207(a)(1) |
| Federal biweekly: 30 h then 50 h is 10 h overtime, never averaged | 6:00, 6:00, 6:00, 6:00, 6:00, 0:00, 0:00, 10:00, 10:00, 10:00, 10:00, 10:00, 0:00, 0:00 | 70:00 regular, 10:00 OT, 0:00 DT | Federal (FLSA) | 29 CFR 778.104 |
| California: five 10-hour days, daily OT only (no pyramiding) | 10:00, 10:00, 10:00, 10:00, 10:00 | 40:00 regular, 10:00 OT, 0:00 DT | California | Cal. Labor Code § 510(a) |
| California: one 13-hour day is 8 regular, 4 overtime, 1 double time | 13:00 | 8:00 regular, 4:00 OT, 1:00 DT | California | Cal. Labor Code § 510(a) |
| California: seven 9-hour days; day 7 is 8 h overtime + 1 h double time | 9:00, 9:00, 9:00, 9:00, 9:00, 9:00, 9:00 | 40:00 regular, 22:00 OT, 1:00 DT | California | DIR overtime FAQ (seventh consecutive day) |
| Alaska (4+ employees): four 10-hour days | 10:00, 10:00, 10:00, 10:00 | 32:00 regular, 8:00 OT, 0:00 DT | Alaska | AS 23.10.060(b) |
| Alaska, fewer than 4 employees: federal rule applies | 10:00, 10:00, 10:00, 10:00 | 40:00 regular, 0:00 OT, 0:00 DT | Alaska | AS 23.10.060(d)(1) |
| Nevada, paid under 1.5× minimum wage: a 10-hour day | 10:00 | 8:00 regular, 2:00 OT, 0:00 DT | Nevada | NRS 608.018(1)(b) |
| Nevada 4×10 by agreement: no daily overtime | 10:00, 10:00, 10:00, 10:00 | 40:00 regular, 0:00 OT, 0:00 DT | Nevada | NRS 608.018(1)(b) |
| Nevada, paid 1.5× minimum wage or more: weekly overtime only | 10:00 | 10:00 regular, 0:00 OT, 0:00 DT | Nevada | NRS 608.018(2) |
| Colorado: one 13-hour workday is 12 regular + 1 overtime | 13:00 | 12:00 regular, 1:00 OT, 0:00 DT | Colorado | COMPS Order #40, Rule 4.1.1(2) |
| Colorado: 18:00–24:00 then 00:00–08:00 is 14 consecutive hours, 2 h overtime | 6:00, 8:00 | 12:00 regular, 2:00 OT, 0:00 DT | Colorado | COMPS Order #40, Rule 4.1.1(3) |
| Colorado: a 30-minute unpaid meal ends the consecutive run | 6:00, 8:00 | 14:00 regular, 0:00 OT, 0:00 DT | Colorado | COMPS Order #40, Rules 4.1.5 and 5.1 |
| Custom: daily OT after 10 h at 1.5×, double time after 12 h at 2× | 13:00 | 10:00 regular, 2:00 OT, 1:00 DT | Custom | User-defined |
Sources
Primary sources used
- 29 U.S.C. 207(a)(1)
- 29 CFR 778.104
- 29 CFR 778.105
- 29 CFR 785.18
- 29 CFR 785.19
- 29 CFR 785.48
- California Labor Code §510
- California DIR overtime FAQ
- Alaska Stat. 23.10.060
- Alaska DOLWD wage and hour FAQ
- NRS 608.018
- NRS 608.0126
- Nevada Labor Commissioner AO-2025-05
- Colorado COMPS Order #40, 7 CCR 1103-1
Change log
- November 1, 2026: First public version. Rule sets: Federal, California, Alaska, Nevada, Colorado, and Custom.
Found an error? Write to info@pohjastudio.fi with the inputs and the result you expected.
Last reviewed: