> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hitaji360.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Compensatory Leave

> Compensatory leave (sometimes called comp-off or time off in lieu) is time off an employee earns by working on a day they would normally have been off — a…

Compensatory leave (sometimes called *comp-off* or *time off in lieu*) is time off an employee earns by working on a day they would normally have been off — a public holiday or a rest day. Rather than paying overtime, you credit the employee with leave days they can take later. In Hitaji 360 a compensatory leave request records the days that were worked, is checked against the holiday list and the employee's attendance to prove the work actually happened, and — once approved — credits the days onto the employee's leave balance.

This page covers raising a compensatory request, the proof Hitaji insists on before it will credit anything, the statuses it moves through, and what approval does to the balance.

**You'll find this at:** the **Request Compensatory Leave** action (a modal — see *Current state* below for where it surfaces). Behind it sits the API at `hr/compensatory-leave-requests`.

> Compensatory requests, like all leave, belong to a **business** and credit a balance tied to a specific **employment contract**. Confirm the business switcher before raising one.

> 📷 *Screenshot: the Request Compensatory Leave modal — work dates, days to credit, reason — to be added.*

***

## Before you start

Two things must be true or the request will be refused on submission:

* **The leave type must be a compensatory type.** Each leave type has an **Is Compensatory** flag set under leave settings. A compensatory request can only credit a type with that flag on.
* **A holiday list must be configured, and the worked days must really be holidays.** Hitaji resolves the holiday list down a chain (the contract's list, then the employee's, then the business default) and checks that the dates being claimed actually fall on non-working holidays. You cannot earn comp-off for an ordinary working day.

***

## The request lifecycle (statuses)

A compensatory request is a *submittable document*:

| Status        | Meaning                                                         | Balance impact                                                   |
| ------------- | --------------------------------------------------------------- | ---------------------------------------------------------------- |
| **Draft**     | Saved but not submitted.                                        | None.                                                            |
| **Submitted** | Sent into approval (and, once approved, the days are credited). | Credited **on approval**.                                        |
| **Cancelled** | Withdrawn or rejected.                                          | If it had already been credited, the days are **removed** again. |

> **Days are credited on *approval*, not on submission.** Submitting sends the request into the approval workflow. The positive ledger entry and the bump to the balance happen only when an approver clears it (or when the policy needs no approval, in which case it is auto-approved immediately).

***

## Raising a compensatory request

Open the **Request Compensatory Leave** modal and fill in:

| Field              | Required | Notes                                                                                                                                                                                    |
| ------------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Work From Date** | Yes      | First day worked.                                                                                                                                                                        |
| **Work To Date**   | Yes      | Last day worked. Cannot be before *Work From*.                                                                                                                                           |
| **Days to Credit** | —        | How many days of comp-off to earn. **Note:** the server recomputes this itself from the date range (and any half-day), so your entry is a guide; the authoritative figure is calculated. |
| **Reason**         | No       | Context for the approver.                                                                                                                                                                |

The modal reminds you: *"Your request will be verified against attendance records and holiday list before approval."* On submit it both creates the draft and submits it for approval in one step, then confirms *"Compensatory leave request submitted for approval."*

A request cannot overlap an existing active compensatory request for the same contract — that guard stops the same holiday work being claimed twice.

***

## The proof Hitaji insists on

This is what makes compensatory leave trustworthy. When you submit, before any credit is granted, Hitaji checks **that the employee was actually at work** on the claimed days:

* It requires at least one genuine **holiday** (a non-rest-day holiday) inside the claimed range.
* It then looks for **attendance proof** for every day in the range. Where attendance records are kept, it requires a *submitted* attendance row showing **Present**, **Work From Home**, or **Half Day** for each day. (Where attendance isn't recorded, it falls back to requiring at least one raw clock-in on each holiday.)
* For a half-day claim, it requires at least one Half-Day attendance — and conversely, if a day's only attendance is a half-day, you cannot claim a *full* day's comp-off for it.

If the proof isn't there, submission is refused with a message explaining which day failed.

***

## What approval does to the balance

When the request is **approved**:

* A positive **Allocation**-type entry is written to the leave ledger for the credited days, dated to the worked period.
* The employee's leave balance for the compensatory type gains those days (its *accrued* figure goes up).

Hitaji is careful about *which year* the credit lands in. If a **leave period** is configured, work done at the very end of one period credits the **next** period — so a day worked on 31 December earns comp-off in the new year rather than a period that is about to close. If no period is configured, it credits the year of the worked date.

If the request is **rejected**, it simply moves to Cancelled and nothing is credited.

***

## Cancelling

Cancelling a request that was never credited (still awaiting approval) just withdraws it. Cancelling one that **had already been credited** writes a negative **Adjustment** entry to the ledger and reduces the balance's accrued days again — the comp-off is taken back. Any open approval task is closed at the same time so nothing is left dangling in an approver's queue.

***

## Permissions

| Action                              | Permission |
| ----------------------------------- | ---------- |
| View compensatory requests          | `hr:read`  |
| Create, submit, or cancel a request | `hr:write` |

Approval is handled through the standard approval workflow, so whoever the workflow routes the request to is the approver.

***

> ⚠️ **Current state.** The backend for compensatory leave is complete — including **half-day** comp-off (a `halfDay` flag plus the specific `halfDayDate`), full attendance-proof checks, and period-aware crediting. The **web UI is thinner than the backend**, which means a few things to be aware of:
>
> * The request is raised through a **modal only** — there is **no dedicated list page** to browse submitted compensatory requests, track their approval status, or cancel them from the screen. Day-to-day visibility of these requests is limited in the UI today.
> * The modal does **not expose the half-day option**, even though the server supports it. To grant half-day comp-off you currently need the API.
> * The modal's **Days to Credit** field is taken at face value on screen, but the server **recomputes** the figure from the dates and half-day flag — so the credited days are always the server's calculation, not necessarily what was typed.
>
> (All flagged for the team.)

***

## Related

* [Leave overview](/hr/user/leave/overview) — balances, the ledger, and leave types
* [Leave types & settings](/hr/user/leave/leave-types) — where *Is Compensatory* is set
* [Holiday lists](/hr/user/leave/holiday-lists) — the holidays that make comp-off possible
* [Leave periods](/hr/user/leave/leave-periods) — how the credited year is chosen
* [Attendance](/hr/user/attendance/attendance) — the attendance records used as proof
* [Leave reports (balance & ledger)](/hr/user/leave/leave-reports) — see the Allocation/Adjustment entries
