Is your feature request related to a problem? Please describe.
ERPNext currently assumes that all Leave Types operate within the same Leave Period. This creates limitations when different types of leave follow different time-based rules.
For example:
- Annual leave typically resets every year
- Sick leave may accumulate over multiple years (e.g. a rolling 3-year cycle)
Because the Leave Period is shared across all leave types, it becomes difficult to model these policies correctly without workarounds. This leads to:
- Incorrect enforcement of allocation limits
- Loss of control when using overrides like “Allow Over Allocation”
- Manual tracking outside the system in more complex cases
Describe the solution you'd like
Allow Leave Period to be defined per Leave Type instead of globally.
Possible implementation:
- Add an optional Leave Period field on Leave Type
- If set, it overrides the global Leave Period
- If not set, the system falls back to the existing global Leave Period
This would allow:
- Annual Leave: yearly Leave Period
- Sick Leave: multi-year Leave Period
- Other leave types: custom-defined periods as needed
Describe the alternatives you've considered
- Setting “Maximum Leave Allocation Allowed per Leave Period” to unlimited
- Enabling “Allow Over Allocation”
These bypass the limitation but reduce control and introduce risk of incorrect allocations.
Additional context
A related issue with similar flexibility limitations is #4225
That issue is more about multiple components within a single leave allocation, this is for allowing different time boundaries per leave type.
Is your feature request related to a problem? Please describe.
ERPNext currently assumes that all Leave Types operate within the same Leave Period. This creates limitations when different types of leave follow different time-based rules.
For example:
Because the Leave Period is shared across all leave types, it becomes difficult to model these policies correctly without workarounds. This leads to:
Describe the solution you'd like
Allow Leave Period to be defined per Leave Type instead of globally.
Possible implementation:
This would allow:
Describe the alternatives you've considered
These bypass the limitation but reduce control and introduce risk of incorrect allocations.
Additional context
A related issue with similar flexibility limitations is #4225
That issue is more about multiple components within a single leave allocation, this is for allowing different time boundaries per leave type.