Zum Hauptinhalt springen

Employment Models

An employment model is a reusable template that holds your working-time rules, overtime policy, surcharges, leave rules, and other employment terms in one place. Instead of configuring every contract individually, you set up a model once and assign it to as many contracts as you need. Each contract then inherits the rules automatically.

A typical employment model defines:

  • When overtime starts and how it is measured (daily, weekly, or monthly)
  • Daily and weekly working-time limits
  • Flextime, core hours, and balance limits
  • Premium pay for nights, weekends, and holidays
  • Rounding rules and approval workflow
  • Compensation policy (paid out, time off, or both)
  • Rest periods, comp time, undertime, and expiry rules
  • Break requirements and leave policies (vacation, sick, parental)

Employment models live under Organizations > your organization > Employment Models.

Creating an employment model

New models are created in a 7-step wizard. You can either start from a country template that comes pre-filled with the local labor-law defaults, or start from scratch.

Employment model list

Employment model list

The table shows every model in your organization with its name, country, description, and status. Click a row to edit the model and manage its working time, break, and leave rules. Click + New Employment Model to start the wizard.

Starting a new model

New employment model template selection

When you click + New Employment Model, the Select a Template screen opens with two options:

OptionWhat it does
Use TemplateLoads the wizard pre-filled with the labor-law defaults for the selected country (for example, United States: Fair Labor Standards Act (FLSA) or Germany: Arbeitszeitgesetz). All seven steps come with sensible starting values that you can still adjust before saving.
Start from ScratchOpens the wizard with the system defaults and no country pre-fill. Use this when you want to build a fully custom model.

After you make your choice, the wizard guides you through seven steps: General, Thresholds, Flextime, Surcharges, Rounding, Compensation, and Compliance. You can move forward once the required fields on the current step are filled, and you can save the model from any step once everything is valid.

Pick the closest country template

Even if you plan to customize most fields, starting from a matching country template is faster than starting blank. Rest periods, night windows, and statutory limits will already be set to the legally correct values for that jurisdiction.

Step 1: General

General step

The first step captures the model's identity and the two settings that drive how overtime is calculated.

FieldWhat it does
NameA short label for the model (required). This is what you see in the model list and when assigning the model to a contract.
DescriptionOptional notes for your team, for example "Salaried engineering staff, EU rules".
CountryThe country this model applies to. When you start from a template, the country also determines which labor-law defaults are loaded.
RegionAn optional sub-region (such as a US state or German federal state). When a regional template exists, it overrides the country defaults.
Calculation BasisHow overtime is measured: Daily, Weekly, or Monthly. This decides which threshold (on the next step) is used to identify overtime hours.
Reference PeriodHow overtime balances are grouped for reporting: Day, Week, Month, Quarter, or Year.
ActiveWhen unchecked, the model is hidden from contract pickers so it cannot be assigned to new contracts. Existing contracts keep working as before.
Country and region only matter at creation

Country defaults are only loaded when you first create the model from a template. Changing the country later updates the label but does not regenerate the rules. To re-apply a country template, create a new model.

Step 2: Thresholds and limits

Thresholds step

This step sets the limits that define when work counts as overtime, plus the maximum hours members are allowed to work.

FieldWhat it does
Daily Threshold (minutes)Used when Calculation Basis is Daily. Any minutes worked above this value count as overtime. Leave as 0 to fall back to the contract's daily hours.
Weekly Threshold (minutes)Used when Calculation Basis is Weekly. Any minutes worked above this value in a week count as overtime. Leave as 0 to fall back to the contract's weekly hours.
Monthly Threshold (minutes)Used when Calculation Basis is Monthly. Any minutes worked above this monthly target count as overtime. Leave blank to use the contract's monthly target.
Max Daily HoursThe maximum hours a member is allowed to work in one day. Members get a warning at 90% of this limit and again when it is exceeded.
Max Weekly HoursThe maximum hours a member is allowed to work in one week. The same warnings apply.
Max Overtime Hours/MonthA cap on how much overtime can be recorded per month. Anything above this is silently dropped. Leave blank to disable.
Max Overtime Hours/YearA yearly cap on overtime. Once reached, additional overtime is recorded in a separate "capped" column for visibility but is not paid out or banked. Leave blank to disable.
Threshold and max work together

Thresholds decide when overtime starts counting. Max Overtime caps how much overtime can be recorded per month or year. The two values work together: thresholds open the gate, and the maximums close it.

Step 3: Flextime

Flextime step

Flextime lets members carry a plus or minus balance from one period to the next, within rules you define here. The fields below are only active when Flextime Enabled is on, except the Core Time block, which has its own switch.

FieldWhat it does
Flextime EnabledMaster switch. When off, none of the flextime checks below run, and overtime is simply actual minus target with no carry-over.
Frame Start / EndThe earliest start and latest end of a working day (for example, 06:00 and 20:00). Time recorded outside this window is flagged as a frame violation but still counts toward the balance. Windows that cross midnight (like 22:00 to 06:00) are supported.
Daily Max HoursThe longest a single working day is allowed to be. Days above this are flagged but not blocked.
Period (weeks)The length of the flextime settlement window. At the end of each window, the carry-over resets to zero. Common values: 4 (monthly), 13 (quarterly), 17 (EU averaging window). Leave as 0 to disable settlement and let the balance roll continuously.
Core Time EnabledMaster switch for the core-time check.
Core Time Start / EndThe window every workday must fully cover. If a workday's recorded time does not span this entire window, it is flagged. Weekends and holidays are skipped.
Account Max Plus / Account Max MinusThe maximum positive and negative flextime balance a member can carry. The balance is clamped to these caps when saved. Leave blank to disable.
Flextime checks flag, they do not block

Frame, daily-max, and core-time violations show up as warnings in reports and notifications. They do not block time entries or change the overtime calculation. Members can still record time outside the frame, and you will see it flagged.

Flextime fields are not pre-filled by templates

Even when you use a country template, the flextime fields stay empty so you can configure them based on your own working-time agreement. Fill them in by hand when you need them.

Step 4: Surcharges

Surcharges step

This step configures premium pay percentages on top of the regular hourly rate. Every percentage on this page applies to the value of the work. It does not change how many overtime hours are recorded.

FieldWhat it does
Tiered Surcharges EnabledSwitches on the per-tier overtime ladder, where you can pay different premiums for the first few hours of overtime, the next few, and so on. Tiers are configured separately on the model.
Night Surcharge EnabledMaster switch for night-work premium pay.
Night Start Time / Night End TimeThe night-work window (for example, 22:00 to 06:00). Windows that cross midnight are supported. Every minute worked inside this window earns the surcharge, not just overtime minutes.
Night Surcharge %The premium added on top of the regular rate for night work.
Weekend Surcharge EnabledMaster switch for the Saturday, Sunday, and holiday premiums below. When off, none of the three are paid.
Saturday Surcharge %Premium for Saturday work that is not also a public holiday.
Sunday Surcharge %Premium for Sunday work that is not also a public holiday.
Holiday Surcharge %Premium for any work on a public holiday. If a day is both a holiday and a Sunday, the holiday surcharge applies.
Shift Work EnabledSwitches on shift-based surcharges. Once on, you can define early, late, and night shifts (each with its own time window and premium) on the model.
Anti-pyramiding picks the highest, it does not combine

If you turn on Anti-Pyramiding (on the Compliance step), the system pays only the single highest applicable surcharge for any given hour, so a Saturday night shift does not stack into a 4x premium. With anti-pyramiding off, applicable surcharges add up. Pick the mode that matches your jurisdiction.

Step 5: Rounding and approval

Rounding step

Two unrelated settings share this step.

Rounding

Rounding adjusts working-time totals before they are saved to the period balance.

FieldWhat it does
Rounding EnabledMaster switch. When off, raw minutes flow through unchanged.
Rounding Interval (minutes)The bucket size. For example, 15 rounds everything to the nearest quarter hour.
Rounding MethodNearest, Up, or Down.
Rounding Applies ToWhat gets rounded: Period Total (rounds the total once at the end), Daily Total (rounds each day's total), or Overtime Only (rounds just the overtime portion).

Approval

The approval workflow runs at the end of every period (typically monthly).

FieldWhat it does
Approval ModeNone (auto-approved at period close): balances are auto-approved, no manager review.
Automatic: same as None, with a slightly different audit log note.
Threshold-based: balances at or under the threshold below are auto-approved, and anything above is sent to a manager for review.
Auto-Approve Threshold (minutes)Only used in Threshold-based mode. Balances under this number of overtime minutes are auto-approved, and anything above is queued for a manager. Set to 0 to send every non-zero balance to the manager queue.
Approval Deadline (days)How long managers have to act before the deadline action below takes effect. Set to 0 to disable the deadline, so pending balances stay pending until they are handled manually.
Action when approval deadline passesWhat happens when the deadline is reached: Keep as pending (recommended, leaves the balance untouched), Auto-approve balance, or Expire balance (forfeit overtime).
Want manager review on every balance?

Pick Threshold-based with the threshold set to 0 so every overtime balance ends up in the manager queue.

Forfeiture is rarely enforceable in DACH/EU jurisdictions

The Expire balance (forfeit overtime) option zeros out earned overtime when the deadline passes. In Germany, Austria, and Switzerland this is generally only enforceable when a collective agreement explicitly allows it. Use it with care and check with your local labor lawyer.

Step 6: Compensation and payout

Compensation step

This step covers four related topics: how overtime is compensated, how auto-payout runs, how the hourly rate is derived, and the all-in salary bundle.

Compensation

FieldWhat it does
Compensation TypePayout (cash only), Time Off (comp-time only), Mixed (both allowed), or None (compensation disabled). This setting only applies when no overtime rules are configured on the model. See the note below.
Payout FactorA multiplier applied to the cash value of overtime. For example, 1.25 adds a 25% premium on top of the regular hourly rate. Default 1.00.
Time Off FactorA multiplier applied to the comp-time credit. For example, 1.5 means 60 minutes of overtime earn 90 minutes of time off. Default 1.00.

Payout

The payout job runs daily and processes approved balances based on these settings.

FieldWhat it does
Payout CycleHow often balances are paid out: Monthly, Quarterly, Yearly, On Request (manual only), or Never.
Auto PayoutMaster switch. When off, balances stay approved but are only paid out when a manager clicks Compensate manually. Turn this on to let the system clear balances automatically each cycle.
Min Payout HoursSkips auto-payout when the remaining balance is below this number of hours. This is useful for avoiding tiny payouts. Leave blank to disable.
Max Hours per CycleCaps how many hours can be paid out in a single cycle. Anything above stays on the balance for next time. Leave blank to pay out the full balance each cycle.

Salary settings

These two fields determine the hourly rate used for every monetary calculation in the model. Overtime payout, surcharges, and tiered surcharges all build on this rate.

FieldWhat it does
Salary Payments per YearUsed for fixed-annual salaries. The system divides the annual salary by this number to derive a monthly rate. Default 12. Allowed range: 1 to 14.
Overtime Base Includes Special PaymentWhen on, and Salary Payments per Year is greater than 12, the system uplifts the monthly rate proportionally before computing the hourly rate. This is the DACH "Sonderzahlung" (13th- and 14th-month uplift) folded into the overtime base.

All-in

An all-in salary lets you bundle a fixed number of overtime hours into the regular salary each month.

FieldWhat it does
All-In EnabledMaster switch for the bundle.
All-In Hours (monthly)The number of overtime hours considered "included in salary" each month. Calculated overtime up to this amount is treated as already paid.
Excess CompensationWhat happens to overtime above the bundle: Payout (paid in cash with surcharges), Time Off (compensable as comp time only, no cash), or None (excess is silently absorbed into the salary).
Compensation: model fields versus overtime rules

The Compensation Type, Payout Factor, and Time Off Factor fields above are only used when the model has no active Overtime Rules. Country templates that ship with rules (such as Austria, Germany, and France) handle compensation per-rule, so these model-level fields are bypassed. All-In Excess Compensation is independent of rules and always applies.

Step 7: Compliance

Compliance step

The final step groups the safeguards that keep the model within labor law: anti-pyramiding, comp time, rest periods, Sunday and holiday rest, undertime, and overtime expiry.

Anti-pyramiding

FieldWhat it does
Anti-Pyramiding EnabledWhen on, the system uses California-style overtime calculation: full daily overtime per day, plus only the additional weekly overtime that exceeds what the daily rule already counted. The system also pays only the single highest applicable surcharge per hour instead of stacking them. Country templates such as US-CA turn this on automatically.

Comp time

FieldWhat it does
Comp Time AllowedAllowed, Public Sector Only, or Not Allowed. When set to Not Allowed, members cannot receive time-off compensation for overtime and have to be paid in cash.
Comp Time Max HoursA cap on how much accumulated comp time a member can hold. Time-off requests that would exceed this cap are rejected. Leave blank to disable.

Rest periods

These settings drive the daily compliance check that detects insufficient rest between shifts. Violations show up in the rest-period violation log and trigger a notification.

FieldWhat it does
Rest Period Tracking EnabledSwitches on the daily rest check. The weekly check runs independently whenever Min Weekly Rest has a value.
Min Daily Rest (minutes)The minimum gap required between the end of one work day and the start of the next. Default 660 (11 hours, the EU baseline).
Min Weekly Rest (minutes)The minimum continuous weekly rest required. Checked once per week (on Sunday) by scanning for the longest gap between work intervals.

Sunday and holiday rest

When members work on a Sunday or public holiday, the system can require a substitute rest day to be granted within a deadline.

FieldWhat it does
Sunday Work Substitute RestMaster switch. When on and a member worked on a Sunday or holiday the previous day, a pending substitute rest day is created automatically.
Sunday Substitute Rest Deadline (days)Days after Sunday work in which a substitute rest day must be granted. If left empty, defaults to 14 days (the German ArbZG default).
Holiday Substitute Rest Deadline (days)The same idea for holidays. If a day is both a Sunday and a holiday, this deadline applies. Defaults to 56 days when empty.
Min Work-Free Sundays per YearStored as configuration for reporting. The annual quota check is not yet enforced.

Undertime

Undertime is the opposite of overtime: working less than the contract requires.

FieldWhat it does
Undertime EnabledWhen on, the system records undertime per period (target minus actual, when actual is less). When off, undertime is ignored.
Undertime Carry OverWhen on, undertime debt carries over from one period to the next. Overtime in a later period does not offset earlier undertime. Both are tracked separately.
Undertime Max (minutes)Caps the amount of undertime debt that can be recorded per period (including any carry-over). Leave blank to disable.
Deduct from VacationStored as configuration. The vacation-deduction workflow is not yet enforced.

Overtime expiry

FieldWhat it does
Overtime ExpiresMaster switch. When off, balances stay open until they are compensated or paid out.
Expiry After (months)Number of months after a period ends before the balance expires. Leave at 0 to disable expiry even when Overtime Expires is on.
Expiry ActionWhat happens on the expiry date: Forfeit (the balance is moved to Expired and lost), Payout (the balance is paid out automatically), or Carry Over (the balance is converted to comp time).
Deadline DayDay of the month (1 to 31) when the expiry sweep takes effect. Leave at 0 to use the same day-of-month as the period end.
Forfeiture is generally not enforceable in DACH/EU

The Forfeit expiry action zeros out earned overtime. In Germany, Austria, and Switzerland this is usually only enforceable with an explicit collective-agreement clause. Check with local counsel before using it.

Working time rules

A working time rule defines the legal envelope around how long members can work and how much rest they need between shifts. Each model can hold multiple rules. Only the highest-priority active rule is used at any given time, which lets you layer a country override on top of a general rule.

Working time rules feed three engines:

  • HR warnings alert the member when they are approaching or have exceeded the daily or weekly legal maximum.
  • Overtime calculation caps the working day at the legal maximum and tracks rolling-average weekly limits.
  • Compliance detects rest-period violations (too little daily rest, too little weekly rest, night-work limits) and writes them to the violation log.

Manage them under Organizations > your organization > Employment Models > select a model > Working Time Rules > Add Rule.

General

FieldWhat it does
NameA short label shown in the rule list (for example, "DE Standard ArbZG").
PrioritySort order. The lowest-priority active rule wins, so use this to layer specific rules over a general fallback.
ActiveInactive rules are ignored by all engines. Use this to retire a rule without deleting it.

Daily and weekly limits

FieldWhat it does
Max Daily HoursThe standard daily cap. HR warnings fire at 90% and again when exceeded.
Max Daily Hours ExtendedA higher cap that applies in exceptional circumstances. When set, this value takes precedence over Max Daily Hours.
Max Weekly HoursThe cap on a single calendar week. HR warnings fire at 90% and again when exceeded.
Max Weekly Hours AverageThe cap on the rolling average across Averaging Period Weeks. For example, EU rules allow up to 60 hours in a single week as long as the rolling 17-week average stays under 48 hours.
Averaging Period WeeksLength of the rolling window. Set to 0 to disable the averaging check.

Rest periods

FieldWhat it does
Min Daily Rest HoursThe minimum gap between the end of one workday and the start of the next. Default 11 hours.
Min Weekly Rest HoursThe minimum continuous weekly rest. Default 24 hours.

Night work

FieldWhat it does
Night Work Start / EndThe night-work window (for example, 23:00 to 06:00). Used to count night minutes and to apply the night-worker daily cap.
Night Worker Max Daily HoursA tighter daily cap that applies only when the day contains night-work minutes.

Protected status

These fields are stored on the rule for reporting and future use, but are not enforced today because the system does not yet collect the personal data needed to evaluate them (such as date of birth or pregnancy status, both of which require careful GDPR handling).

FieldWhat it does
Youth Max Daily HoursStricter daily cap for members under the legal adult age.
Pregnant Max Daily HoursStricter daily cap for pregnant members.
Pregnant Night Work ProhibitedWhen on, pregnant members may not work during the night-work window.

How a working day is evaluated

For each work day in the period being calculated:

  1. Pick the active rule. The lowest-priority active rule on the model is used.
  2. Daily cap. The day's gross minutes are checked against Max Daily Hours Extended (or Max Daily Hours when no extended value is set). HR warnings fire at 90%, and the day is flagged as exceeded at 100%.
  3. Night cap. If the day contains minutes inside the Night Work window and Night Worker Max Daily Hours is set, the tighter cap applies.
  4. Rest gap. Compliance compares the end of one day with the start of the next. A gap below Min Daily Rest Hours logs a violation.
  5. Weekly totals. At the end of each week, total minutes are checked against Max Weekly Hours and the rolling average against Max Weekly Hours Average.
  6. Weekly rest. Compliance checks that the week contains at least one unbroken stretch of Min Weekly Rest Hours.

Break rules

A break rule defines the minimum break required for a given amount of working time. Multiple rules form a tier ladder. Once an employee crosses a threshold of working hours, the matching tier takes effect.

Break rules feed two engines:

  • Compliance detects break violations: if the actual break is shorter than required, the day shows up in the rest-period violation report.
  • Overtime calculation subtracts the missing break minutes from working time so payroll does not pay for unbroken work that breached the rule.

Manage them under Organizations > your organization > Employment Models > select a model > Break Rules > Add Break Rule.

How rules are matched

For each work block, the engines pick the highest matching tier based on gross working minutes. Paid and unpaid breaks are matched separately. When no rule matches, the system falls back to the contract's own Break Threshold and Break Minutes Required.

Fields

FieldWhat it does
After Work MinutesThe threshold at which this tier starts applying. A rule with 360 covers shifts of 6 hours or more.
Break Duration MinutesThe minimum total break required once this tier is active. Missing minutes are logged as a violation and deducted in payroll.
Break Min Part MinutesFilters out micro-breaks. Pauses shorter than this do not count toward the legal minimum, even though their time is still excluded from working time. Default 0 counts every pause.
Break Max SplitThe maximum number of separate pauses that count toward the legal minimum. When set, only the longest few pauses are kept. Default 0 means unlimited splits.
Tier OrderSort order, used as a tie-breaker when multiple tiers have the same threshold.
PaidWhen on, the break is paid (no deduction from working time, but the duration is still reported). When off, it is an unpaid statutory break and is deducted.
ActiveInactive rules are ignored by all engines.

How a day's break is calculated

For each work block (a contiguous span of working time on one day):

  1. Pick the tier. Match gross working minutes against every active rule and use the highest threshold that fits. Fall back to the contract's break settings when no rule matches.
  2. Collect actual breaks. Explicit pauses inside tasks plus inter-task gaps. Pauses shorter than Break Min Part Minutes are dropped.
  3. Apply the split cap. If Break Max Split is set, keep only the longest qualifying pauses. Extras still count as time off, but do not satisfy the legal minimum.
  4. Compare. If the actual break is below Break Duration Minutes, the missing minutes become a payroll deduction and a compliance violation.
  5. Paid versus unpaid. Paid-tier breaks are reported as paid break time. Unpaid-tier breaks count toward the statutory deduction.
Tiered example

A model with two unpaid tiers, (threshold 360, duration 30) and (threshold 540, duration 45), works like this: a 5-hour day requires no statutory break (under both thresholds); a 7-hour day requires 30 minutes (above 360, below 540); a 10-hour day requires 45 minutes (the higher tier wins).

Leave rules

A leave rule defines the policy for one leave type: vacation, sick, parental, or bereavement. Every contract assigned to the model inherits the rules.

The vacation rule drives the member's annual leave balance: how many days are entitled, how unused days carry over, and when carry-over expires. The sick rule drives validation when sick absences are filed. Parental, maternity, and paternity rules are stored today and surface in reports. See the table below for which behaviors are actually enforced.

Manage them under Organizations > your organization > Employment Models > select a model > Leave Rules > Add Leave Rule.

General

FieldWhat it does
Leave TypeOne of Vacation, Sick, Parental, or Bereavement. The rule is matched to absence types by code, so an absence type with code sick picks up the sick leave rule.
NameA short label shown in the leave-rule list.
I18n KeyOptional translation key used by clients that render the rule's name in the user's language.
ActiveInactive rules are ignored. Use this to retire a rule without deleting it.

Entitlement

FieldWhat it does
Min Days (Annual)The base annual entitlement in working days. Used by the vacation rule, with fallback to the contract's Vacation Days Annual when no rule applies.
Tenure Scaling EnabledWhen on, entitlement comes from the matching tenure tier (configured separately) instead of Min Days (Annual). The tier is selected based on the member's months of service.
Basis Work Days per WeekThe number of working days the Min Days (Annual) value assumes, typically 5. When the contract uses a different work pattern, the entitlement is prorated automatically.
Accrual MethodHow entitlement is granted: Immediate (full amount on Jan 1), Monthly (prorated when the contract starts mid-year), or After Probation (none until probation ends, then prorated). Subsequent years always grant the full amount.
Probation MonthsUsed only with After Probation. The member earns no leave until Valid From plus this many months.

Carry-over

The vacation rule's carry-over settings control how unused days roll into the next year. Carry-over is processed on Jan 1 (year-end rollover) and daily at 05:00 UTC (expiry sweep).

FieldWhat it does
Carry Over AllowedWhen off, all unused days expire on Dec 31.
Carry Over Max DaysCaps the number of days that can roll into the next year. Anything above the cap is dropped.
Carry Over Expiry MonthsCarried-over days expire this many months after Jan 1. Ignored when an explicit Expiry Date is set.
Carry Over Expiry DateAn explicit MM-DD date when carried-over days expire (for example, 03-31). Takes precedence over Expiry Months. Defaults to March 31 when neither is set.
Carry Over Extended on IllnessWhen on, the daily expiry sweep checks for approved sick absences that overlapped the original expiry window. If any are found, the expiry is pushed back instead of forfeiting the days.
Carry Over Illness Expiry MonthsMonths added to the latest sick-absence end date when illness defers expiry.

Sick leave

When the rule's Leave Type is Sick, the validations below run on every sick-absence create or update.

FieldWhat it does
Documentation Required After DaysA doctor's note is expected when the absence's total days exceed this threshold. The system warns when the absence is filed without an attached document.
Waiting DaysThe first N days of a sick spell are unpaid. Recorded today as informational. Payroll integration is not yet wired.
Same Illness Reset MonthsA new sick absence within this many months of a prior approved sick absence of the same type is flagged as a continuation rather than a new spell.
Paid by Employer (Days)Configuration only. Number of days fully paid by the employer at the start of a sick spell.
Paid by Employer (Percent)Configuration only. Percentage of pay during the full-pay window. Defaults to 100.
Half Pay (Days)Configuration only. Days at reduced pay after the full-pay window.
Half Pay (Percent)Configuration only. Percentage of pay during the half-pay window.

Parental, maternity, and paternity

These fields are stored on the rule but are not yet evaluated by absence validation or balance computation. They will become enforced once the parental-leave engine ships.

FieldWhat it does
Parental Leave (Months)Total months of parental leave the member is entitled to.
Parental Leave Paid PercentPercentage of pay during parental leave.
Maternity Weeks BeforeWeeks of leave before expected birth.
Maternity Weeks AfterWeeks of leave after birth.
Paternity DaysDays of paid paternity leave.

How a vacation year is built

When the system creates a new year's leave balance (Jan 1, or when a contract is initialized), it walks the rule top to bottom:

  1. Base entitlement. Pick Tenure Tier days when scaling is on; otherwise Min Days (Annual). Fall back to the contract's Vacation Days Annual when no rule applies.
  2. Accrual. Apply Monthly or After Probation proration in the year the contract starts (or the year probation ends). Subsequent years grant the full base.
  3. Workday basis. Prorate against the contract's actual work-day pattern when it differs from Basis Work Days per Week.
  4. Carry-over. Add unused days from the prior year, capped by Max Days if set, with expiry from Expiry Date (or Expiry Months, or March 31 by default).
  5. Daily expiry sweep. Once the expiry date passes in the contract's timezone, any still-carried days are moved to Expired unless Extended on Illness defers them.