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: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:
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.
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).
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
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 (ahalfDayflag plus the specifichalfDayDate), 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:(All flagged for the team.)
- 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.
Related
- Leave overview — balances, the ledger, and leave types
- Leave types & settings — where Is Compensatory is set
- Holiday lists — the holidays that make comp-off possible
- Leave periods — how the credited year is chosen
- Attendance — the attendance records used as proof
- Leave reports (balance & ledger) — see the Allocation/Adjustment entries