Skip to content
All guides

Leave Management · Updated September 5, 2026

Requesting & Approving Leave

How leave works in Arche: the leave types you can apply for, how a request moves through approval, how balances are tracked, and the policy rules (notice, length, blackout periods) that the system checks before a request goes through.

Leave in Arche lives under Leave Management. Depending on what you can do, the page is titled My Leave, Team Leave Approvals, or Leave Management. Everyone with the request_leave permission can submit and track their own requests. Approvers act on requests assigned to them. Holders of manage_leave see team or company-wide requests and can file leave on behalf of others; view_leave grants read-only access to records and exports.

This guide covers the employee side (requesting, balances) and the approver side (the approval chain, escalation), plus the calendar of holidays and blackout periods.

Leave types

Each company defines its own leave types. Every type has a code, a name, and a category. The category is one of:

CategoryTypical use
annualAnnual leave
sickSick leave
maternityMaternity leave
paternityPaternity leave
compassionateBereavement and family emergencies
unpaidLeave without pay (no balance is checked)
studyStudy or exam leave
otherAnything else the company configures

A leave type also controls who can use it and how days are counted:

  • Entitlement: defaultDaysPerYear sets the base allocation. The accrualMethod decides how it is granted: annual (full amount at the start of the year), monthly (earned over the year), or prorated (scaled from the hire date for mid-year joiners).
  • Eligibility: minServiceMonths (for example, 12 months before sick leave applies), eligibleEmploymentTypes (such as full-time, part-time), and genderRestriction for maternity and paternity.
  • Day counting: includesWeekends and includesHolidays. When both are off (the usual case), only working days count; weekends and gazetted public holidays are skipped.
  • Other flags: isPaid, allowHalfDay, requiresDocumentation (for example, a medical certificate for sick leave), and carry-over settings (allowCarryOver, maxCarryOverDays).

Requesting leave

Open My Leave, then click New Request. The form asks for:

FieldNotes
Leave TypeOnly active types appear in the list
Start Date / End DateThe range you want off
ReasonOptional, up to 1000 characters
Half-day leaveCounts as 0.5 days when ticked

As soon as you have picked a type and both dates, a live preview appears showing the working days the request will consume, your balance after, and any policy warnings. This preview is computed by the server, so it reflects the same rules that apply when you submit. It shows warnings instead of blocking, so you can adjust dates before committing.

When you click Submit Request, the system checks eligibility, documents, dates, policy, overlap, and balances. The main checks are:

1. Leave type is valid and active
2. You are an active employee
3. Gender restriction (maternity / paternity)
4. Employment type is eligible
5. Minimum service months met
6. Required supporting documentation supplied
7. Valid dates and allowed half-day period; at least one working day for full-day leave
8. Policy: max consecutive days, min notice, blackout periods
9. Sufficient balance in each leave year (skipped when the type is unpaid)
10. No overlapping pending, escalated, or approved request

If everything passes, the request is created with status Pending and the approval chain is resolved (see below). For paid leave, days are reserved as pending or confirmed as used when auto-approved. A request spanning December and January is split between the respective yearly balances.

The backend supports filing for another employee with manage_leave. The current web New Request form has no employee selector and submits for the signed-in employee.

Half-day leave

Half-day leave is allowed only when the leave type permits it. Start and end must be the same working date, and you must choose am or pm. It consumes 0.5 days. A weekend or holiday excluded by that leave type cannot be used for a half-day request.

Current web-form limitation: the New Request form shows a half-day checkbox but does not send an AM/PM period, so that submission is rejected by the backend. It also has no supporting-document input for types that require documentation. Contact your administrator for an appropriate supported submission path for these requests; the checkbox alone does not complete the half-day requirements.

The approval flow

Approval is driven by a leave policy attached to each leave type, not by a fixed hierarchy. A policy has an approvalMode:

ModeWhat happens
autoThe request is approved immediately, no approver needed
singleOne approver resolves it
chainMultiple steps, approved in order

Each policy defines its steps, and each step says who should approve it through a resolverType:

  • DIRECT_MANAGER: the requester's manager.
  • DEPARTMENT_HEAD: the head of the requester's department.
  • ROLE_HOLDER: the first active holder of a named role (for example, HR Manager).
  • SPECIFIC_EMPLOYEE: a named person.

A step can also carry a fallback resolver (used if the primary cannot be found) and an autoEscalateHours timer. When a request is submitted, Arche resolves each step to a real person and creates the approval chain. A requester is never assigned to approve their own leave; that step is skipped.

If every step ends up skipped (common when a senior person like a CEO requests leave and there is no one above them), the request falls to the company's designated senior escalation approver if one is configured. If no approver can be found at all, the request is auto-approved.

Statuses

A leave request moves through these statuses:

StatusMeaning
PendingWaiting on the current approver
EscalatedThe current step timed out and moved to a fallback or the next step
ApprovedAll steps approved; days moved from pending to used
RejectedAn approver declined; remaining steps skipped, balance restored
CancelledWithdrawn by the employee before it started

Approving or rejecting

Approvers see a Team Approvals tab listing requests assigned to them right now. Each row has Approve and Reject buttons, and both let you add a comment (the comment is required when rejecting).

Approve a step
  └─ more steps remain?  → move to the next approver
  └─ last step?          → request Approved, balance confirmed as used

Reject a step
  └─ request Rejected, all later steps skipped, reserved balance returned

Only the approver assigned to the current step can act. Trying to approve or reject a request that is already approved, rejected, or cancelled is blocked.

If the requester is rostered on any published shifts during the leave dates, the approval screen shows a schedule conflict notice listing those shifts and flagging any that would drop below their required headcount if the leave is granted. This is advisory only: it never blocks the approval, it just tells the approver what coverage they will need to backfill.

Auto-escalation

If a step has an autoEscalateHours timer and the approver does not act in time, Arche escalates automatically the next time the queue is read:

  • Single mode: the step is reassigned to its configured fallback approver (for example, HR), and the request shows as Escalated.
  • Chain mode: the overdue step is marked escalated and the request advances to the next step in the chain.

Leave balances

Balances are tracked per employee, per leave type, per year. Open My Leave Balances (or Leave Balances / Team Leave Balances if you manage others) to see them. Each card shows four numbers:

FieldMeaning
EntitledBase entitlement plus any carried-over days
UsedDays from approved leave
PendingDays reserved by requests awaiting approval
AvailableEntitled plus adjustments, minus used and pending

The lifecycle of days through a balance:

Submit request   → days move to Pending
Fully approved   → Pending → Used
Rejected         → Pending returned to Available
Cancelled (pending)  → Pending returned
Cancelled (approved) → Used returned

A balance record is created the first time it is needed. For carry-over types, unused days from the previous year roll forward up to maxCarryOverDays (or with no cap if that is set to 0). HR can apply a manual adjustment (positive or negative) with a reason; this is reflected in Available. Unpaid leave does not touch any balance.

Policy rules the system enforces

When a leave type has an active policy, these limits are checked on submit (and surfaced as live warnings in the preview):

RuleFieldBehavior
Maximum consecutive daysmaxConsecutiveDaysBlocks requests longer than the limit (0 = no limit)
Minimum noticeminNoticeDaysBlocks requests that start sooner than the required notice
Blackout periodsrespectBlackoutPeriodsBlocks requests overlapping an active blackout

Working days are calculated by walking the date range and skipping weekends and active public holidays, unless the leave type is set to include them.

Blackout periods and the leave calendar

A blackout period is a window when leave cannot normally be requested, useful for peak seasons. Each blackout has a name, a date range, an optional reason, and can be scoped to a single work location or apply company-wide. Blackouts are created and edited from the Leave Policies settings page (see the companion "Leave Policies & Balances" guide). The Leave Calendar page only displays them.

The Leave Calendar page shows, for the selected year:

  • Blackout Periods: name, dates, and reason, flagged so the team knows when not to book leave.
  • Public Holidays: gazetted holidays grouped by month, with recurring annual holidays marked. These are the days excluded from working-day counts.

FAQ

Why was my request approved instantly? The leave type's policy is set to auto, or no approver could be resolved for it. Either way, no manual approval was needed.

Can I cancel after approval? Yes, as long as the leave has not started yet. Once an approved leave's start date has arrived or passed, cancellation is blocked and you should contact HR for an adjustment.

My balance looks short while a request is pending. Pending requests reserve their days so you cannot over-book. If the request is rejected or cancelled, those days return to Available.

I do not have enough balance. Can I still apply? Not for paid leave; the request is blocked if Available is below the days requested. Unpaid leave types skip the balance check entirely.

Why can't I approve a request I can see? You can only act on the request's current step, and only if that step is assigned to you. Earlier steps must be approved first, and already-decided requests cannot be changed.

Who gets a request if my manager is unavailable? If the step has an escalation timer, it reassigns to the fallback approver (single mode) or advances to the next step (chain mode) once the timer passes.

Can HR file leave for me? The API supports this with manage_leave and applies the same checks. The current web New Request form submits only for the signed-in employee.