¶ Personal Space
Leave Application Leave Tracker Leave Balance
Apply for leave, follow its status, edit eligible requests, and check remaining balance.
This page explains the rules behind leave: which leave types exist, how the system decides the leave type for each day, when balances are deducted and returned, and who approves.
Leave is one process that runs across three spaces. Employees apply in Personal Space, managers approve in Work Space, and HR manages entitlements in HR Space.
Each step of the leave process happens in a different space.
Leave Application Leave Tracker Leave Balance
Apply for leave, follow its status, edit eligible requests, and check remaining balance.
Approvals / Leave Reports / Leave History
Approve or reject leave for direct reports. The manager decision is final.
HR Generalist / Leave
Set leave allocations, view leave summaries, acknowledge leave, change a leave type, or reject leave.
The Leave Application menu in Personal Space offers three categories.
The employee picks dates only. The system decides the leave type for each day automatically, as explained below.
Medical Certificate and Hospitalization Leave. A supporting document is required. For MC, a photo of the certificate is required.
The options depend on the employee's gender on their profile: female staff see Maternity and Compassionate, male staff see Paternity and Compassionate, and anyone else sees Compassionate only.
Every leave type, whether it uses a balance, and whether it needs a supporting document.
| Code | Leave Type | Uses Balance | Attachment | Notes |
|---|---|---|---|---|
| AL | Annual Leave | Yes | No | Carry-forward days are used before this year's days. |
| OL | Ordinary Leave | Yes, monthly quota | No | Only for Flexible Working Day staff. Chosen automatically by General Leave. |
| PH | Public Holiday | Monthly quota | No | Only for Flexible Working Day staff. Chosen automatically by General Leave. |
| UL | Unpaid Leave | No | No | Used when no other balance is available. |
| MC | Medical Leave | Yes | Yes (MC photo) | Medical Leave category. |
| HL | Hospitalization Leave | Yes | Yes | Medical Leave category. |
| ML | Maternity Leave | Yes | Yes | Special Leave category. Female staff only. |
| PL | Paternity Leave | Yes | Yes | Special Leave category. Male staff only. |
| CL | Compassionate Leave | Yes | Yes | Special Leave category. |
| EL | Emergency Leave | No | Only if converted to MC | Can be converted to one other type. See Emergency Leave below. |
| RL | Replacement Leave | No | No | Needs a replacement date in the same month. Half day allowed. |
For General Leave, the employee only picks dates. The system goes through the dates in order and gives each day the first leave type that still has room.
| Rule | How it works |
|---|---|
| Who counts as flexible | Staff whose profile Working Shift is Flexible Working Day. |
| OL monthly quota | Annual OL entitlement ÷ 12. HR can only set an OL entitlement that divides evenly by 12. |
| PH quota | The number of public holidays in that month that apply to the employee. A holiday applies if it is national, or if it is listed for the state of the employee's work location. |
| AL carry-forward | Used first, but only until its expiry date. When it expires, the unused carry-forward days are moved to payable days. |
| Preview | The employee sees the day-by-day result before submitting. The same calculation runs again on submit, so the saved result always matches the latest balances. |
| Example: flexible employee, 24 OL per year (2 per month), 1 state public holiday in March, 5 AL left. Applies for 5 days in March. | ||
|---|---|---|
| Day | Result | Why |
| 1 | OL | March OL quota has 2 days. |
| 2 | OL | March OL quota has 1 day left. |
| 3 | PH | OL quota used up. March has 1 unused public holiday. |
| 4 | AL | OL and PH used up. AL balance available. |
| 5 | AL | AL balance still available. |
When leave days are taken from a balance, and when they are returned.
Emergency Leave can stay as Emergency Leave or be converted into one other leave type.
| Option | Recorded as | Extra requirement |
|---|---|---|
| No conversion | Emergency Leave (EL) | None. No balance is used. |
| Replacement | Replacement Leave (RL) | Replacement date and segment for each day, in the same month. |
| Convert to AL | Annual Leave (AL) | Enough AL balance. |
| Convert to OL | Ordinary Leave (OL) | None. |
| Convert to MC | Medical Leave (MC) | Enough MC balance and a supporting document. |
| Convert to UL | Unpaid Leave (UL) | None. |
A leave request is refused if any of these are not met.
The manager is the only approval step.
Employees can change the dates of an existing General Leave request in some cases.
The mobile app handles some leave steps differently from the web. See Mobile App.
| Step | Mobile app | Web |
|---|---|---|
| General Leave | Same calculation and balance handling as the web. | As described above. |
| Medical, Special, Emergency, and Replacement Leave | The request is saved directly. The balance is not deducted when it is submitted. | The balance is deducted when the request is submitted. |
| Manager rejects leave | Only the status changes. General Leave days are still returned automatically, but for other leave types submitted on the web, the deducted days are not returned. | The deducted days are returned. |
The database functions that enforce these rules. The rules live in the database, so every app follows the same logic.
| Function | Purpose |
|---|---|
preview_leave_cascade_general_v2 | Day-by-day General Leave preview. |
submit_leave_cascade_general_v2 | Submits General Leave and reserves balances. |
update_leave_cascade_general_v2 | Edits the dates of a General Leave request. |
preview_leave_cascade_v2 | The calculation used by the three functions above. |
submit_leave_application_and_reserve_balance | Submits Medical, Special, Emergency, and Replacement Leave. |
manager_reject_leave_application_and_restore_balance | Manager rejection. Returns the balance. |
hr_reject_leave_application_and_restore_balance | HR rejection. Returns the balance. |
hr_change_leave_type_and_reconcile_balance | HR changes the leave type and moves the balance. |
expire_al_carry_forward_v1 | Moves expired AL carry-forward to payable days. |
enforce_unique_leave_date_v1 | Trigger that blocks two active requests on the same date. |
enforce_leave_manager_only_approval_v1 | Trigger that marks HR approval as approved automatically. |