Intermittent leave, counted to the entitlement
Protected leave can be taken in pieces. An hour for an appointment, a day for a flare, each drawn against a fixed entitlement on a rolling window. The compliance question is cumulative and per worker, and it is the case delivered tracking handles worst.
◆ Continuous leave, and the case that is notone interval versus many small usages.
A continuous leave is one interval: out on a date, back on a date, and the workers-on-leave page models it cleanly. Intermittent leave is the opposite shape. An hour for a recurring appointment, a day for a flare, taken in pieces across months, each piece drawn against a fixed entitlement, usually 480 hours in a rolling 12-month window.
That combination, many small usages against a cap measured on a sliding window, is exactly what delivered absence tracking handles worst. The balance is not a simple accrual, the window is not the calendar year, and the compliance question, how much protected leave remains, has to be right per worker on any given day.
◆ The register, workedentitlement, used, remaining, exhaustion flagged.
| Worker | Entitlement | Used, rolling 12mo | Remaining |
|---|---|---|---|
| W-1102 | 480 | 468 | 12 |
| W-0847 | 480 | 320 | 160 |
| W-1339 | 480 | 88 | 392 |
| W-0521 | 480 | 0 | 480 |
Each row is one subtraction: entitlement minus used equals remaining, checked by the same battery that ties the money pages. W-1102, at 12 hours remaining, is the row that matters: a worker nearly out of protected leave, and the conversation a manager must have before the next request, not after. The used column is the sum of many intermittent pieces over the trailing year, not a calendar total. Sample values are illustrative, never client data.
◆ The owned answerusage events, a rolling window, a defensible flag.
Model each piece as a usage event, then compute the used total with a window function over the trailing twelve months, per worker, on any date. Remaining is the entitlement minus that rolling sum. The near-exhaustion flag becomes a filter, and the audit answer, why did this worker have this much protected leave on that date, is a query with the pieces listed beneath it.
-- protected leave used, rolling 12 months, per worker, as of a date
SELECT worker_key,
480 AS entitlement_hours,
SUM(hours) AS used_rolling_12mo,
480 - SUM(hours) AS remaining
FROM fct_absence_event
WHERE leave_type = 'protected_intermittent'
AND event_date > DATE '2026-05-31' - INTERVAL '12' MONTH
AND event_date <= DATE '2026-05-31'
GROUP BY 1 ORDER BY 4
The same rolling-window discipline the turnover denominator and the hours lookback use, applied to a statutory entitlement. This is the compliance and audit answer delivered tracking cannot hold still, and the reason it belongs in a model you own.
- FMLA
- The United States Family and Medical Leave Act and similar protections that grant leave entitlement.
- intermittent leave
- Protected leave taken in pieces rather than one continuous interval.
- entitlement
- The capped protected leave a worker is granted, often 480 hours.
- rolling 12-month
- A window ending on the query date, not the calendar year.
- usage event
- One dated piece of leave taken, drawn against the entitlement.
- exhaustion
- Reaching the entitlement cap, after which protection may not apply.
- continuous leave
- A single leave interval with one start and one return.
- window function
- Database math over a sliding set of rows, here the trailing year.