Year End
Configure what happens to unused leave balances at the close of the leave year, and review the automated processing that runs on schedule.
The Leave Year
The leave year is the 12-month cycle over which leave accrues. At the end of this cycle, unused leave balances must be dealt with according to your company policy. The system supports four policies, configured in Settings.
Year-End Leave Policies
| Policy | What Happens to Unused Balance |
|---|---|
| Forfeit | Unused leave is forfeited at year end. The balance resets to zero (or to the new year's opening accrual). No payment is made. Employees lose unused days. |
| Cash Out | Unused leave is automatically paid out. The cashout amount is queued and added to the employee's next payslip as a named line item. Balances reset to zero after payout. |
| Force Vacation | Employees are scheduled into leave for the unused days. Absence records are created for the period following year end, typically covering a company shutdown. No cash payout is made. |
| Employee Choice | Each employee can choose whether to roll over, cash out, or take their remaining days as leave. The HR administrator reviews and approves each choice before processing. |
Under the BCEA, employees accumulate at least 1.5 days of leave per month (15 working days per year for a 5-day week). Leave may not be forfeited unless the employer gave the employee a reasonable opportunity to take it. If your policy is "Forfeit," ensure employees are informed and given the opportunity to take leave before year end. "Cash Out" or "Force Vacation" policies are typically safer from a compliance standpoint.
Automated Year-End Processing
The Year End process runs automatically via a scheduled task (WordPress cron) on the configured year-end date. Depending on the policy:
- Forfeit — balances are zeroed out in a single background pass.
- Cash Out — the system calculates each employee's cashout amount (days × daily rate) and creates a pending cashout record. On the next payslip generation run, these amounts are included automatically.
- Force Vacation — absence records covering the shutdown period are created for all employees with outstanding balance. These appear in the Absent Days page and the Leave history.
- Employee Choice — the cron sends notifications and sets employee status to "Awaiting Year-End Election." An admin must manually process each employee's election before the leave year resets.
Running Year End Manually
If you need to trigger year-end processing outside the scheduled date — for example, after correcting leave balances that were wrong — you can run it manually from the Year End page:
- Review the Year-End Preview table showing each employee's current balance and what will happen under the configured policy.
- Confirm the policy is correct. If not, change it in Settings first.
- Click Run Year End Now.
- Confirm the prompt. The process runs immediately and the results are shown in a summary table.
Year-end processing makes permanent changes to leave balances and creates payslip cashout records. There is no undo button. Run the preview carefully and confirm balances are correct before proceeding. If a cashout was generated in error, you can delete the pending cashout record on the Leave page before the next payslip run.
Leave Balance Rollover
If your policy allows partial rollover (e.g. carry forward up to 5 days, forfeit the rest), this is configured as a maximum rollover cap in Settings. The cron processes each employee in order: days up to the cap are rolled forward to the new year's opening balance, and excess days are handled according to the overflow policy (forfeit or cash out the excess).
New Year Opening Balances
After year-end processing completes, each employee's leave balance is reset to their opening entitlement for the new leave year. If your accrual method is all upfront, the full annual entitlement appears immediately. If it is monthly accrual, the balance starts at zero and accrues from the first day of the new leave year.