Pay periods, breaks, premiums, labor accounts, accruals, export

Featurekamo-shared-library
Shipped
August 12, 2026 at 5:52 AM UTC
Author
Kamo
Commit
00042e8

Batches the remaining wage-and-hour schema into one shared-lib change so the whole domain lands in a single KamoInitializer run rather than a migration per phase. Entities: pay periods with rule-version freeze columns, earning lines, break rules and violations, labor accounts and work segments, accrual policies, balances and ledger, leave cases, export batches, attendance occurrences. Four pure engines, 51 tests: BreakEvaluator — never auto-deducts a lunch, because an auto-deducted meal books an unpaid half hour the employer cannot prove was duty-free. Premiums are WAGES (Naranjo), so they flow into earnings rather than a report. One premium per CATEGORY per day (UPS v. Superior Court): two missed meals owe one, a missed meal plus a missed rest owe two. A meal waiver is honoured only where the statute permits one — an employee cannot consent outside it. Rests are unpunched, so silence on attestation is never scored as a violation. RegularRateCalculator — overtime is owed on the REGULAR rate, not the base rate. 778.115 weighted average, 778.209 retroactive overtime on nondiscretionary bonuses, 778.216/218 exclusions, and the half-time premium: straight time is already in the total, so overtime adds 0.5x, not 1.5x. AccrualEngine — a ceiling stops accrual without deleting balance, carryover is capped separately from the ceiling, and a deduction that would breach the floor throws rather than silently approving half a day off. PayPeriodCalendar — generated, not hand-entered, and verifyContiguous refuses a gap (work belonging to no period, never paid) or an overlap (paid twice).

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing