> ## 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.

# Overtime

> Overtime is the extra pay an employee earns for working beyond their normal shift.

Overtime is the extra pay an employee earns for working beyond their normal shift. In Hitaji 360 it has two parts: **overtime types**, which are the pay-rate categories you define once (time-and-a-half on weekdays, double time on holidays, and so on), and **overtime slips**, which are the actual claims — a period's worth of overtime hours for one employee, valued and ready for payroll. The hours themselves are worked out from clock-ins against the employee's shift, so overtime ties directly into the shift and attendance engine.

This page covers defining overtime types, how a slip is generated and valued, the slip's lifecycle, and exactly how overtime reaches payroll and the ledger.

**You'll find this at:** **Overtime Types** at `/settings/erp/people/overtime-types` (in the ERP settings hub, under *People*). Overtime slips are served by the API at `hr/overtime-slips` — see *Current state* for the UI position.

> Overtime types are tenant-level settings; slips are tied to an employee's **contract** and **business**. Confirm the business switcher before generating slips.

> 📷 *Screenshot: the Overtime Types list with the "New Overtime Type" button — to be added.*

***

## Overtime types (the rate categories)

An overtime type defines *how much extra* a category of overtime pays. The **Overtime Types** page lists them with their **Name**, **Multiplier** (shown as e.g. *×1.5*), what days they **Apply on**, the **Salary component** they map to, and a **Status** badge (Active / Inactive).

Choose **New Overtime Type** to add one:

| Field                | Required | Notes                                                                                                                                                              |
| -------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Name**             | Yes      | e.g. "Holiday OT × 2".                                                                                                                                             |
| **Rate multiplier**  | Yes      | The multiple of the base hourly rate — *1.5* for time-and-a-half, *2* for double time. Must be zero or more.                                                       |
| **Applies on**       | Yes      | *Weekdays*, *Weekends*, *Holidays*, or *All days* — when this rate is in force.                                                                                    |
| **Salary component** | No       | The **earning** component overtime under this type is paid through. Leave it empty to let payroll read the overtime slip directly under a default "Overtime" line. |
| **Active**           | —        | On by default.                                                                                                                                                     |

When several types could apply to one day, the **most specific wins** — a holiday rate beats a weekday rate on a public holiday, a weekend rate beats the catch-all "All days" rate at the weekend, and so on. Within the same tier you can break ties with a **default** flag and a **priority**.

Deleting a type is non-destructive to history — existing overtime slips are unaffected; the type just stops being available for new ones.

***

## Overtime slips (the claims)

An overtime slip is the actual overtime for one employee over a period. It carries:

| Field                   | Notes                                                                                                                                   |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **Employee / contract** | Who the overtime is for.                                                                                                                |
| **Period start / end**  | The window the slip covers.                                                                                                             |
| **Total hours**         | Sum of overtime hours across the period.                                                                                                |
| **Total amount**        | Sum of the per-day values (see below).                                                                                                  |
| **Currency**            | The slip's currency.                                                                                                                    |
| **Detail lines**        | One line per day with overtime — its date, hours, the overtime type applied, the multiplier, the base hourly rate, and the line amount. |

### How a slip is generated and valued

Slips aren't typed in by hand — they're **generated for a period**. Hitaji:

1. Reads the employee's clock-ins for the period and, for each day, works out how far the last clock-out ran **past the shift end** (beyond the allowed grace) — that's the day's overtime hours.

2. Works out the **base hourly rate** from the employee's salary structure — either an explicit hourly rate if the structure carries one, or the monthly base divided by the standard working hours per month from your payroll deduction policy (defaulting to 208 hours/month under regional labour law).

3. Picks the right **overtime type** for that day (using the day/holiday precedence above) and values the line as:

   > **line amount = base hourly rate × multiplier × hours**

4. Sums the lines into the slip's total hours and total amount, and saves it as a **Draft**.

Re-generating for the same period replaces the existing draft rather than duplicating it.

### The slip lifecycle

| Status        | Meaning                                         | What you can do                               |
| ------------- | ----------------------------------------------- | --------------------------------------------- |
| **Draft**     | Generated, not yet submitted.                   | Submit it, or cancel it.                      |
| **Submitted** | Locked and **eligible for payroll** to pick up. | Cancel it (until payroll consumes it).        |
| **Consumed**  | A payroll run has folded it into a payslip.     | Locked — handle through a payroll correction. |
| **Cancelled** | Voided.                                         | Nothing further.                              |

Submitting a slip does **not** itself create a payslip line or post anything — it simply marks the slip *Submitted* so the next payroll run for that contract will collect it.

***

## How overtime reaches payroll — and the ledger

This is the part that touches pay and the books. When you **run payroll** for a period, the run gathers every **Submitted** overtime slip for the contracts in the run and folds their amounts into the employee's **earnings** (added to gross pay *before* statutory deductions are computed, so PAYE and the rest are calculated on the larger gross). It then marks each slip **Consumed**, stamping which payroll run took it, so the same slip can never be paid twice.

Where the money posts depends on the overtime type:

* If the type has a **salary component** mapped, the overtime amount lands on that component, and posts to the general ledger through that component's account mapping.
* If the type has **no component**, payroll pays it under a default **Overtime** earning line, which posts through the standard payroll overtime path.

### Behind the scenes — the accounting

Overtime posts to the ledger as part of the payroll run that consumes the slip — it is not posted by the slip on its own. Like any earning, when payroll posts the run:

|                                                                                                                | Debit           | Credit          |
| -------------------------------------------------------------------------------------------------------------- | --------------- | --------------- |
| **Salary / overtime expense** (the mapped salary component's expense account, or the default overtime expense) | Overtime amount |                 |
| **Salaries payable**                                                                                           |                 | Overtime amount |

So the overtime cost is recognised as an expense and the obligation to pay it parked in salaries payable, exactly as the rest of the run's earnings are, and is settled when the run is paid. See [Running payroll](/hr/user/payroll/running-payroll) for the full set of postings.

***

## Permissions

| Action                                           | Permission |
| ------------------------------------------------ | ---------- |
| View overtime types and slips                    | `hr:read`  |
| Create / edit / delete overtime **types**        | `hr:admin` |
| Generate, submit, or cancel an overtime **slip** | `hr:write` |

***

> ⚠️ **Current state.** **Overtime types** have a full web screen (create, edit, delete). **Overtime slips do not have a web UI** — the generate / submit / cancel actions, and any list or detail view of slips, are driven through the API today, even though payroll fully consumes submitted slips. So you can configure rates on screen, but raising and submitting the actual overtime claims currently needs the API (or a payroll-side integration). (Flagged for the team.)

***

## Related

* [Shifts](/hr/user/attendance/shifts) — the shift end that defines when overtime begins
* [Attendance requests & check-in](/hr/user/attendance/attendance-requests) — the clock-ins overtime is computed from
* [Salary components](/hr/user/payroll/salary-components) — the earning component overtime maps to
* [Salary structures](/hr/user/payroll/salary-structures) — where the base hourly rate comes from
* [Running payroll](/hr/user/payroll/running-payroll) — where slips are consumed and posted
* [Payroll corrections](/hr/user/payroll/payroll-corrections) — for overtime already consumed by a payslip
