Leave Policies
The Leave Policies section controls accrual, carryover, eligibility scope, and request limits for each leave type.
A policy is scoped by:
- Branch
- Leave Type
- Employment Type
- Effective Date Range
Leave Policies Index Page
The index page lists policy scope and accrual setup.

Available Filters
| Filter | Description |
|---|---|
| Branch | Filters by branch (visible when user is not branch-assigned). |
| Leave Type | Filters by leave type. |
| Employment Type | Filters by employment type. |
| Accrual Method | Filters by accrual mode (Monthly, Yearly, None). |
| Accrual Start Type | Filters by accrual start strategy (Hire Date, Year Start, Custom Date). |
| From | Start date for created-at filtering. |
| To | End date for created-at filtering. |
Notes:
- This table has no free-text search box.
Available Actions
- Create: Opens the leave policy creation form.
- Edit: Opens the leave policy edit form.
- Delete: Deletes one leave policy after confirmation.
- Bulk Delete: Deletes selected leave policies after confirmation.
Create Leave Policy Page
Use this page to configure policy behavior for one leave type and employment type.

Leave Policy Information Card
| Field | What it does |
|---|---|
| Branch | Branch where this policy applies (shown on create for non branch-assigned users). |
| Leave Type | Leave type governed by this policy. |
| Employment Type | Employee employment category covered by this policy (Full Time, Part Time, Contractor, Daily Worker, Seasonal). |
| Max Balance Days | Maximum balance cap. Accrual will not push balance above this value. |
| Priority | Policy priority (integer) used to control policy order when multiple rules are compared. |
| Max Days Per Request | Max allowed days per single request (shown when leave type unit is Day or Both). |
| Max Minutes Per Request | Max allowed minutes per request (shown when leave type unit is Hour or Both). |
Effective Dates Card
| Field | What it does |
|---|---|
| Effective From | Start date when this policy becomes valid. |
| Effective To | End date when this policy remains valid. |
Negative Balance Card
| Field | What it does |
|---|---|
| Allow Negative Balance | Allows usage below zero balance for this policy scope. |
| Max Negative Days | Maximum negative balance limit (shown only when negative balance is enabled). |
Accrual Settings Card
| Field | What it does |
|---|---|
| Accrual Method | How balance is granted: Monthly, Yearly, or None. |
| Days Per Year | Annual grant amount (shown only when method is Yearly). |
| Days Per Month | Monthly grant amount (shown only when method is Monthly). |
| Accrual Start Type | Start anchor for accrual: Hire Date, Year Start, or Custom Date (required unless method = None). |
| Accrual Start Date | Explicit start date used when start type is Custom Date. |
| Prorate On Hire | Prorates accrual amount based on employee eligible days in period instead of full period amount. |
Carryover Settings Card
| Field | What it does |
|---|---|
| Carryover Enabled | Enables carrying remaining balance to the next year. |
| Max Carryover Days | Maximum amount allowed to carry into next year. |
| Carryover Expiry | Carryover expiry mode: End Of Year, After Months, or Never. |
| Carryover Expiry After Months | Number of months before carryover expires (required when expiry is After Months). |
Edit Leave Policy Page
Use this page to update an existing leave policy.

The edit page uses the same fields and business rules as create.
Option Behavior and Dependency Rules
UI Dependency Behavior
- Selecting a leave type with unit = Hour hides
Max Days Per Requestand keepsMax Minutes Per Request. - Selecting a leave type with unit = Day hides
Max Minutes Per Requestand keepsMax Days Per Request. - If Accrual Method = None, accrual fields and carryover fields are cleared and disabled.
- If Carryover Enabled = Off, carryover detail fields are cleared.
- If Carryover Expiry changes,
Carryover Expiry After Monthsis reset. - If Allow Negative Balance changes,
Max Negative Daysis reset.
Back-end Validation and Business Constraints
- Unpaid leave type cannot use
MonthlyorYearlyaccrual. - Hour-only leave type cannot use
MonthlyorYearlyaccrual. - If leave type has Deduct From Balance = Off:
- accrual must be
None - carryover cannot be enabled
- balance/carryover/negative-balance limit fields must remain empty
- accrual must be
- Prorate On Hire requires
Accrual Start Type=Hire DateorCustom Date. - If start type is
Custom Date, a custom date is required and must not be later thanEffective To(when set). - If carryover is enabled,
Max Carryover Daysmust be greater than zero. - If carryover expiry is
After Months, expiry months must be greater than zero. - If
Max Balance Daysis provided:- it must be at least
1 - for monthly accrual, it must be at least
Days Per Month - for yearly accrual, it must be at least
Days Per Year
- it must be at least
- Overlapping policies are blocked for the same Branch + Leave Type + Employment Type scope and overlapping effective dates.
Validation Limits (Field Constraints)
- Priority: required integer, min
1, max10000. - Days Per Year: required when yearly accrual, numeric
0to300. - Days Per Month: required when monthly accrual, numeric
0to20. - Max Balance Days: optional numeric,
1to300. - Max Days Per Request: optional numeric,
1to360. - Max Minutes Per Request: optional numeric,
1to480. - Max Carryover Days: required when carryover enabled, numeric
1to300. - Carryover Expiry After Months: required when applicable, integer
1to12. - Max Negative Days: optional numeric,
1to360.
Operational Notes
- When a policy is created with accrual method
MonthlyorYearly, accrual processing is triggered for that leave type. - Carryover processing uses
Max Carryover Daysand chosen expiry mode when moving balances into the next year.
