Illuminare is being rebuilt from the ground up. This site stays up while the new version is built.

Methodology / Legal model

Legal model

The statutes, wage orders, and controlling cases the analysis applies — and the thresholds, caps, waiver rules, and rest-break tiers each one drives.

Meal period thresholds

A shift of more than five hours requires a first meal period; more than ten hours requires a second. The trigger is a strict greater-than, because Lab. Code § 512(a) and Wage Order 4 § 11 both read “more than”: a shift of exactly five hours requires none. A required meal is compliant when it begins on time and runs at least 30 minutes; each recorded meal resolves to exactly one classification — compliant, late, short, or short and late. Every boundary is exact, with no rounding on either side of it:

RuleExact boundary
First meal requiredShift duration of more than 5 hours. A shift of exactly 5 hours 00 minutes requires none; one of 5 hours 01 minutes requires one.
Second meal requiredShift duration of more than 10 hours. A shift of exactly 10 hours requires one meal period, not two; at 10 hours 01 minutes a second is required.
TimelyBegins by the end of the trigger hour: a first meal starting exactly at the 5-hour mark is timely; one starting a minute later is late.
Full lengthAt least 30 minutes: a 30-minute meal is compliant; a 29-minute meal is short (Donohue — exact minutes, never rounded).

The 5- and 10-hour triggers are measured on the shift’s duration — its clock time from the first clock-in to the last clock-out of the work period, including gaps between its segments, and distinct from hours worked (the app surfaces the two as separate columns, “Shift duration” and “Hours worked”). This is a disclosed modeling choice: a 09:00–17:00 shift with a one-hour midday gap spans 8 hours though 7 were worked, and its first-meal deadline runs from 09:00.

A qualifying shift with no recorded meal is labeled “no meal period recorded” and counted as a potential violation. The label is deliberate: employers must provide meal periods, not ensure they are taken (Brinker), and a missing punch does not itself establish that no meal was provided — unrecorded or auto-deducted meals are a known limit of timekeeping data. The figure reports what the record shows; the waiver setting and the case’s facts govern what it means.

A shift over 5 hours and at most 6 hours whose first meal is missing is additionally flagged waiver-eligible: § 512(a) permits a first meal to be waived by mutual consent when the total work period is not more than six hours. The band tracks the trigger at its lower bound — a shift of exactly 5 hours requires no meal, so there is nothing there to waive — and its upper bound is inclusive at 6 hours 00 minutes. Whether a waiver exists is a legal and factual question the punch record cannot answer: the analysis flags the eligible shifts, and the case’s waiver setting, frozen when the analysis runs, governs whether they count. Waivers reach meal figures only; the portion of meal exposure arising in that band is reported as a subset of the meal figure, never an addition to it.

Related: Meal premium — per-shift cap · Minute-level censoring · Known limitations & edge cases

Which recorded break becomes the meal

Timekeeping data records breaks, not meal periods. Nothing in a punch file says “this one was the lunch”. One shift often holds more than one gap between punches. A two-minute punch-out, a fifteen-minute errand, and a thirty-minute lunch can all fall on the same day. Every label on the Meal Breaks page names one specific gap, “Late · 1st meal” and “Short · 2nd meal” among them. This topic states which gap each label names.

The analysis scores each viable break against the slot it might fill. The score is the time the break was out of compliance: minutes late plus minutes short. Minutes late is how far the break started after that slot’s deadline. Minutes short is how far its length fell under the required length.

A break that was on time contributes zero to the first term. A break of full length contributes zero to the second. The slot takes the lowest score. Two breaks with the same score go to the earlier one.

A compliant break scores zero, because it was neither late nor short. So the earliest compliant break always wins, and the analysis needs no separate rule to prefer it. When no break is compliant, the same score picks the break the employer came closest to providing.

SlotRule
First mealThe lowest-scoring viable break, measured against the first-meal deadline.
Second mealThe lowest-scoring viable break that started after the first meal. One break can never fill both slots.
Neither slot filledA required meal with no viable break to fill it reads as “Missing”.

A break counts only when it runs at least as long as the run’s minimum-break-length setting. The Parameters page shows that value. Below it, the break is not treated as an attempted meal at all. Above it, every break is a candidate, however short of compliance it falls.

A gap large enough to separate two work periods is not a break at all. The analysis splits the record into shifts first. Only a gap inside one shift can fill a meal slot. That rule keeps an overnight gap between Monday and Tuesday out of Tuesday’s meal figures.

Related: Meal period thresholds · Overlapping-punch resolution · Meal premium — per-shift cap

Meal premium — per-shift cap

A shift with one or more potential meal violations carries at most one meal premium (Lab. Code § 226.7; UPS v. Superior Court). The cap binds per shift, not per potential violation: an employee whose Wednesday second meal is both late and short, and whose Thursday first meal is missing, carries exactly two meal premiums that week — one for each affected shift, valued at one hour of pay each.

The rest premium cap is separate: also at most one per shift. A single shift can therefore carry up to two premiums — one meal and one rest — and the two caps are never combined into one.

The grain is the shift, where the statute’s is the workday. § 226.7(c) pays one additional hour of pay “for each workday” the period is not provided, and UPS reads that as up to two premiums per workday, one per period type. The analysis caps per shift, and the shift is a stated definition rather than an artifact: a gap at or over the split-shift reset threshold — 4 hours by default, settable from 1 to 8 per case — ends one shift and starts the next, and a shift is dated by the local date its first segment starts on. Two shifts in one workday therefore means the employee was released for at least that long and returned, and each period triggered the § 512(a) duty on its own. The two grains agree on every workday holding one shift. Where a workday holds two qualifying shifts the analysis prices both, so exposure on those days reads above the statutory one-per-workday cap.

Related: Meal period thresholds · Rest break model — estimated, not measured · Potential exposure formula · Known limitations & edge cases

Rest break model — estimated, not measured

Rest periods are almost never punched, so no rest figure is measured. The analysis estimates instead, by one model and no other: each employee’s own meal violation rate, applied to that employee’s own rest-qualifying shifts. Per employee, because a class average prices a heavily-affected employee and a compliant one identically, and per-employee variation is what a rest figure has to survive.

An employee with no meal-qualifying shift has no rate to derive: their shifts are all long enough to require a rest period and too short to require a meal period. Their violation rate is empty rather than zero, their rest estimate is zero rather than a class average, and they are left out of the compliance distributions rather than placed at zero, which would read as perfect compliance. How many employees that covers is stated on the Data Quality page and beside the rest figure.

Rest periods required scale with the shift’s duration — its clock span, the same basis as the meal triggers, not cumulative hours worked, so a shift holding long unpaid gaps can read into a higher tier than its hours worked would. Each shared boundary belongs to the lower tier: a shift of exactly 6 hours requires one rest period, not two (Brinker — 10 minutes of rest for a shift of 3.5 to 6 hours, 20 minutes for more than 6 up to 10, 30 minutes for more than 10 up to 14):

Shift durationRest breaks required
Under 3.5 hours0
3.5 to 6 hours1
Over 6 to 10 hours2
Over 10 to 14 hours3
Over 14 hours4

The estimate is arithmetic, not detection, and the rate applies per rest-qualifying SHIFT — not per rest period required: an employee with a 40.0% meal violation rate and 10 rest-qualifying shifts contributes an estimated 4 rest premium shifts. Rest premiums are capped at one per shift — separately from the meal cap (§ 226.7; UPS) — and valued at one hour of pay each. A day holding two rest-qualifying shifts therefore carries up to two rest premiums, one per shift, where the statute’s per-workday cap allows one; known limitations states that divergence. The worked example on the Methodology overview applies this estimate to its three-shift fixture.

Related: Meal premium — per-shift cap · Potential exposure formula · Known limitations & edge cases

See the methodology on your own matter.

Illuminare is in closed alpha — access is by invitation.