Leave Accrual Run Engine
New in Version 7+
The Leave module has undergone a massive upgrade in version 7. As a result, we’ve done away with the old-school way of doing monthly leave runs at the end of the month.
Starting in version 7, we’ve introduced automatic daily leave runs. Every day, the leave run will execute and process all the transactions and accruals that were due the previous day. For instance, if annual leave is set to accrue on the employee’s date engaged, then accruals will be added for today for employees whose anniversary date was yesterday.
To configure the behaviour for leave runs and accruals, see the following articles:
Introduction
This article will describe how the leave run engine will behave and calculate accrual based on Leave Type, Leave Group and other configurated settings.
Each Leave Run will cover a single day. If for some reason, no leave runs were done for a last couple of days, the Leave Engine will catch up by running a leave run for each day until the current day.
Leave Runs are scheduled to run in the mornings at around 1am. It is possible to rollback to a specific point in time which will delete all the leave runs done to that date. You can then manually trigger a new leave run which will cover all the dates up until the current date.
Monthly Accruals
Leave will accrue monthly depending on how the leave type is configured and for when. Accrual will be calculated based on the Employee’s Entitlement Leave Group by taking the annual entitlement and dividing it by 12.
- On Date Engaged
- This will accrue leave on the same day of the month when the employee was first appointed. If the employee was appointed on the 31st of the month and the accrual month only has 30 or less days, accrual will be on the last day of that month.
- No partial accruals are calculated based on date engaged under this setting.
- On the 1st day of each month
- The leave will accrue on the first day of every month.
- If the employee was appointed on a day other than the first Monday of the previous month, the system will calculate partial accrual for the first month based on the Mid-Month Appointment rules configured under the leave type.
Deductions / Adjustments
Unpaid Leave Deduction
If the employee was on leave that was configured as “unpaid”, the system will calculate how many days of the past month the employee was on that leave. That will be converted to a percentage of the total number of days in that month and that percentage will be deducted from the accrual. The Accrual Record’s comment / reason will note “Unpaid leave deducted”.
Maximum Balance Deduction
If the Leave Group has been configured to have a maximum balance for the leave type, the system will check the employee’s Available balance (Formal Balance – Requested Leave) and check if the new month’s accrual will cause that the Available Balance to surpass the Maximum Balance. In that case, the overage will be deducted from the accrual record. The Accrual Record’s comment / reason will note “Maximum balance reached”.
Ignored Employees
Employees will be ignored or excluded from accruals under the following conditions:
- If employee is not linked to an Entitlement Leave Group.
- If the entitlement leave group’s entitlement for the leave type is set to 0 days per year.
- If accrual happens on the day of month when the employee was originally appointed, but the employee does not have a Date Engaged captured in the system.
Annual Accruals
Leave will accrue annually or every “x” years, depending on how the leave type is configured. Leave configured this way are typically set to “Reset to Entitlement” or in rare cases, “Reset to 0”. The system will determine the difference between the Available Balance (Formal Balance – Requested Leave) and the Total Entitlement (Annual Entitlement x Interval Years) and create an accrual record to add or subtract that difference from the leave balance.
The other Accrual Styles do not apply to annual accruals or support for them have been removed.
Other Actions during Leave Runs
After the leave accruals have been added, the leave run process also perform the following tasks.
Completing Approved Applications
This can be configured to happen daily, monthly or not at all. If enabled, the system will automatically update the status of any leave applications that have been approved to completed so that it immediately becomes part of the formal balance.
This action, if enabled, will be performed before accruals are added as this action can affect the formal balances.
Initial Accrual for New Employees
The system will automatically check for any new employees appointed in the past month to see if any system record exists: Initial Balance, Reset Balance or Accrual. If no such record exists, an accrual record will be created on the employee’s date engaged with their first accrual. This action will only execute under one of the following specific conditions:
- (Interval = Monthly) AND (Method = Prorata)
- (Interval = Annually or every “x” years) AND (Method = Prorata or “Reset to Entitlement”)
Upgrading Leave Groups
Entitlement Leave Groups can be configured to automatically upgrade after employees linked to them have been working there for xx number of months. The system will automatically upgrade the applicable employees by linking them to the upgraded entitlement leave group(s).
Forfeit & Migration
Coming soon
Summary of Changes from previous versions
The following table contains some important changes in behaviour from the previous versions to version 7.
| Behaviour | Version 7+ | Older Versions |
|---|---|---|
| Execution | Daily | Monthly |
| Missed Leave Runs | The system will execute a leave run for each day that was missed until caught up. | The system will perform a single leave run that will calculate all the missed accrual and combine it into a single accrual record. |
| Calculations | Simple | Complex |
| Calculations – Mid-month engagements | If accrual is set for the 1st, the system will calculate partial accrual as per the old version. If accrual is set for date engaged, partial calculations are skipped. | The system will calculate the partial accrual as per the configuration in the leave type for employees not appointed at the beginning of the month. |
| Calculations – Missed accruals | The system will only add accrual as Entitlement_per_year / 12. If the employee was on unpaid leave during the previous month, that portion will still be calculated and deducted from the final accrual record. | The system would check when last an employee had an accrual record and calculate the number of missed months since last accrual and multiply it with the accrual per month. |
| Annual Accruals / Resets | Will only accrue / reset based on the date engaged anniversary. | Would reset based on the last system record or date engaged. |
| Sick Leave Accruals | Can now accrue with a new plugin accrual type that will follow the South African rules for new employees: – 1 day accrued per month for the first 6 months – After 6 months, full sick leave becomes available – For older employees, sick leave gets reset every 3 years. | Could be set to reset the balance annually or every 3 years. |
