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

# Overtime

> Requesting extra hours as an employee, approving them as a manager, and when overtime earns comp-off instead of pay.

export const PermissionNote = ({perm}) => <Info>
    Requires the <code>{perm}</code> permission. Ask your administrator if an
    action described here is missing from your screen — see
    [Roles & permissions](/help/concepts/roles-and-permissions).
  </Info>;

Working past your shift does not automatically become paid overtime. The hours are *logged* by the day engine, and then somebody has to *claim* and *approve* them.

## How overtime accrues

The shift template decides when overtime starts. Two numbers matter:

* **Eligible after** — how long you have to work before any of it counts as overtime.
* **Daily cap** — the most overtime one day can produce.

The day engine computes what a day could earn as roughly *worked hours minus the eligibility threshold*, bounded by the cap. That is the day's **logged overtime**, and it is the ceiling on what you can request.

## Requesting it

<PermissionNote perm="overtime:request" />

<Steps>
  <Step title="Find a day with logged overtime">
    Open **History** in the employee app and go to the day. If overtime was logged, a **Request overtime** action appears.
  </Step>

  <Step title="Confirm the minutes">
    The request defaults to the overtime the day actually logged. You can request less, but not more — a claim above what the day earned is refused.
  </Step>

  <Step title="Give a reason">
    What the extra hours were for.
  </Step>

  <Step title="Submit">
    It goes to your direct manager.
  </Step>
</Steps>

## Approving it

<PermissionNote perm="overtime:approve" />

Overtime requests land in the manager app's **Approvals** tab, filtered by the Overtime pill. Approve or reject with an optional note.

<Note>
  **Overtime approval is a manager permission, not an HR one.** The HR preset does not carry `overtime:approve` — it approves leave and regularizations. Managers and Admins approve overtime.
</Note>

Approval is a single step — there is no HR stage. You cannot approve your own overtime.

## What approval does

The approved minutes become an **input to the day**, not a value stamped onto it. The day is re-derived with the approval in hand, which means:

* The manager's number survives the employee's next punch on that day.
* Re-deriving the day later — a correction, the nightly close — produces the same answer, because the approved request is read again each time.

<Warning>
  Approving overtime on a day inside a frozen payroll month is **refused**, and the whole decision rolls back. The day stays as it was and the request stays pending.
</Warning>

## Overtime on a holiday or rest day: comp-off

Overtime worked on a **holiday** or on the employee's **weekly off** additionally credits **comp-off** — compensatory leave days added to their balance.

```mermaid theme={null}
flowchart LR
  OT[Overtime approved] --> Q{On a holiday<br/>or weekly off?}
  Q -->|yes| P[Paid overtime<br/>+ comp-off credited]
  Q -->|no| W[Paid overtime only]
```

<Note>
  **Weekday overtime never earns comp-off.** It is paid overtime, at whatever multiplier the shift template specifies. Comp-off exists for the case where someone gave up a rest day.
</Note>

The credit lands on the employee's comp-off leave balance and they are notified. Near the annual cap the credit is clamped rather than refused — a partial day may be credited instead of a full one, and a credit that would come to zero is skipped.

<Tip>
  The comp-off notification is informational. There is no separate comp-off screen to open — check the balance on the Leave tab.
</Tip>

## Rates

The shift template carries the multipliers: one for weekday overtime, another for overtime on a holiday or rest day. Those rates feed payroll's overtime line when the cycle calculates. Setting them is part of configuring the shift template.
