Overtime tiers#

For: Admin You’ll need: Permission to change work policies, and a work policy open — see How to manage work policies.

Overtime in Shiftavo is tiered: hours over a first threshold report at one multiplier, hours over a second, higher threshold at another. Five tier blocks cover the common cases — daily, weekly, and consecutive days.

What it does#

Five separate tier blocks live on the work policy:

  • ‘Daily OT threshold (tier 1)’ / ‘Daily OT multiplier (tier 1)’ — hours over the first daily threshold.

  • ‘Daily OT threshold (tier 2)’ / ‘Daily OT multiplier (tier 2)’ — hours over the second daily threshold.

  • ‘Weekly OT threshold (tier 1)’ / ‘Weekly OT multiplier (tier 1)’ — hours over the first weekly threshold.

  • ‘Weekly OT threshold (tier 2)’ / ‘Weekly OT multiplier (tier 2)’ — hours over the second weekly threshold.

  • ‘Consecutive day threshold’ / ‘Consecutive day multiplier’ — triggers once a person has worked N days in a row without the required weekly rest.

Each tier is a threshold (the number of hours, or days, that triggers it) plus a multiplier, and the whole group is gated by ‘Is overtime eligible’. The model defaults are 1.5× for tier 1 and 2.0× for tier 2; the country seeds differ — Swiss policies seed 1.25× / 2.00×, US policies 1.50× / 2.00×.

Each tier is measured from its own threshold, so the tiers overlap — tier 2 is not a separate bucket on top of tier 1. With daily thresholds of 8 h and 10 h, a 10.5-hour day reports Daily OT: 2.5h and Daily Double OT: 0.5h — the same half hour appears in both lines.

When it kicks in#

Tiers are previewed on the scheduled shift: when you draft a shift that crosses a threshold, the shift’s validation panel shows informational lines such as “Daily OT: 2.5h @ 1.5x”. They are not re-evaluated on confirmed time entries.

Note

Payroll cost currently applies only the tier-1 multiplier. The tier-2, weekly tier-2, and consecutive-day multipliers show in the validation preview but do not change the payroll cost figure.

Worked example#

A Swiss-seeded policy has a weekly threshold of 45 h at 1.25×, no daily threshold, and premium stacking mode ‘Max (apply only the highest premium)’. Someone works 48 h in the week at CHF 30.00/h: the 3 hours of overtime are charged to the latest shifts of the week.

If one of those overtime hours falls on a Sunday (Sunday premium 1.50×), the stacking mode decides the pay:

  • Under Max, the hour pays 30.00 × max(1.25, 1.50) = CHF 45.00.

  • Under Additive, the same hour pays 30.00 × (1 + 0.25 + 0.50) = CHF 52.50.

See Premiums for how stacking works.

How it shows in the app#

  • Shift validation. Informational lines on the scheduled shift, one per triggered tier.

  • Overtime and compliance report. One overtime number per row — the greater of the daily excess and the weekly excess, not a per-tier breakdown.

  • Payroll detail report. One applied multiplier per row, with a breakdown string explaining what produced it.

Verify it worked#

Draft a shift that crosses your tier-1 daily threshold. The shift’s validation panel lists an informational “Daily OT: N.Nh @ N.Nx” line matching the multiplier you set — and a shift that also crosses tier 2 shows both lines, with the overlapping hours counted in each.