Page actions
instrument implementation / implementation-contract
Work Hours / Timesheet Calculator implementation
A source-bound implementation contract for Work Hours / Timesheet Calculator; deployment and executable qualification remain separate.
Binding contract
This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.
- Record owner
- Guth Instruments
- Lifecycle
- verified-clean
- Evidence ID
- t5-029
- Effect
- Computation or source lookup only
Input and validation requirements
A missing clock-out produces an undefined duration unless the calculator validates and rejects the input. Overnight clock pairs without dates are also convention-ambiguous and can produce a negative duration if same-day subtraction is applied.
Required corrections
No binding erratum is attached to this unique-name record. Implementers must still preserve the declared units, domain, and failure behavior.
Inspectable interface fixture
The sample below is evidence for interface and validation tests, not a production implementation.
{
"inputs": {
"shifts": [
{
"clock_in": "2025-01-06T09:00",
"clock_out": "2025-01-06T17:00",
"unpaid_break_minutes": 30
},
{
"clock_in": "2025-01-07T09:00",
"clock_out": "2025-01-07T17:00",
"unpaid_break_minutes": 30
},
{
"clock_in": "2025-01-08T09:00",
"clock_out": "2025-01-08T17:00",
"unpaid_break_minutes": 30
},
{
"clock_in": "2025-01-09T09:00",
"clock_out": "2025-01-09T17:00",
"unpaid_break_minutes": 30
},
{
"clock_in": "2025-01-10T09:00",
"clock_out": "2025-01-10T17:00",
"unpaid_break_minutes": 30
}
],
"overtime_threshold_hours": 40
},
"expected_outputs": {
"total_hours": 37.5,
"regular_hours": 37.5,
"overtime_hours": 0
},
"working": "Each shift: 17:00 − 09:00 = 8 hours gross. Each break: 30 ÷ 60 = 0.5 hours. Each shift net: 8 − 0.5 = 7.5 hours. Weekly total: 5 × 7.5 = 37.5 hours. Overtime: max(0, 37.5 − 40) = max(0, −2.5) = 0 hours. Regular: 37.5 − 0 = 37.5 hours."
}Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche5/tranche5-results.json