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

# Income-tax slabs (PAYE bands)

> An income-tax slab is the set of PAYE bands the system uses to compute each employee's income tax during a payroll run.

An income-tax slab is the set of PAYE bands the system uses to compute each employee's income tax during a payroll run. A slab is a progressive ladder — the first band is taxed at one rate, the next band at another, and so on — plus an effective-from date so you can keep a history as the law changes (e.g. "Uganda PAYE 2026"). You build the slab once; payroll then applies it automatically, so PAYE is never typed in by hand.

This page covers creating and editing a slab, the band/bracket ladder, optional exemptions and surcharges, the live preview, and how a slab gets picked for an employee.

**You'll find this at:** `/settings/erp/finance/payroll-tax-slabs` (list) — the old `/payroll/setup/tax-slabs` redirects here. Create at `/payroll/setup/tax-slabs/new`, edit at `/payroll/setup/tax-slabs/:id`.

> 📷 *Screenshot: the Income Tax Slab builder showing the bracket ladder and the computation preview — to be added.*

> **Multi-business:** a slab belongs to the selected business. Confirm the business switcher first.

***

## The slab list

The list shows each slab's **Name**, **Effective from**, **Effective to** (or "—" for open-ended), **Currency**, **Country**, the **number of brackets**, and a **Status** badge (Active or Disabled). You can filter to Active-only or show All. Each row has **Edit** and **Delete**.

***

## Creating a slab

Choose **New** (or open an existing one). The builder has four sections.

### 1. Basics

| Field                         | Required        | Notes                                                                    |
| ----------------------------- | --------------- | ------------------------------------------------------------------------ |
| **Name**                      | Yes             | e.g. "Uganda PAYE 2026"                                                  |
| **Effective from**            | Yes             | When this version starts applying                                        |
| **Effective to**              | No              | When it stops; leave blank for the current open-ended version            |
| **Currency**                  | Yes             | 3-letter ISO (defaults `UGX`)                                            |
| **Country code**              | No              | 2-letter ISO (e.g. `UG`)                                                 |
| **Disabled**                  | No              | When on, the slab won't be picked for new computations                   |
| **Allow tax exemption**       | No              | Reveals the exemption-amount field                                       |
| **Standard exemption amount** | If exemption on | A flat amount deducted from annual taxable income before the bands apply |

### 2. Tax brackets (the ladder)

Add the bands. Each row has:

| Field           | Notes                                                                                                                  |
| --------------- | ---------------------------------------------------------------------------------------------------------------------- |
| **From amount** | The lower edge. The first band is locked to **0**; each later band's "from" is filled in from the previous band's "to" |
| **To amount**   | The upper edge. Leave the **last** band blank for "and above" (unlimited)                                              |
| **Rate (%)**    | The marginal rate for income that falls in this band (e.g. `30` for 30%)                                               |

The ladder must be **contiguous** (each band starts where the previous one ended), start at 0, and have **exactly one open-ended band, which must be last**. Use **Add bracket** to append a row.

Example (illustrative — not legal advice):

| From      | To                    | Rate |
| --------- | --------------------- | ---- |
| 0         | 410,000               | 0%   |
| 410,000   | 1,600,000             | 10%  |
| 1,600,000 | *(blank = and above)* | 20%  |

### 3. Other charges (optional surcharges)

Optional extra charges applied **on the base tax**, within an income window:

| Field           | Notes                                                 |
| --------------- | ----------------------------------------------------- |
| **Description** | e.g. "Local service tax"                              |
| **Rate (%)**    | Applied to the computed base tax                      |
| **Min taxable** | Lower bound for eligibility (blank = unbounded below) |
| **Max taxable** | Upper bound (blank = unbounded above)                 |

### 4. Review & preview

The builder summarises the bands and lets you enter a **sample annual taxable income** to see the full computation — exemption, taxable amount, tax per band, base tax, any surcharges, and the total. Use it to sanity-check the ladder before saving.

***

## How a slab is computed

PAYE is **progressive**: each band only taxes the income that falls inside it.

1. If exemption is on, subtract the **standard exemption** from annual taxable income.
2. For each band, tax = (income within that band) × the band's rate; sum across bands → **base tax**.
3. Add any applicable **surcharges** (base tax × surcharge rate, where the income is in the surcharge's window).
4. **Total tax** = base tax + surcharges.

***

## How a slab gets picked for an employee

During a run, for each employee the system chooses a slab in this order:

1. **Override on the assignment** — if the employee's salary structure assignment names an income-tax slab, that one is used (see [Salary structures → Assigning a structure](/hr/user/payroll/salary-structures)).
2. **Default effective slab** — otherwise the system finds the slab for the business whose effective-from date is on or before the run date and whose effective-to is blank or after it.

The chosen slab feeds the statutory PAYE component — that is why PAYE has no amount box on the structure: it comes from here.

***

## Editing, disabling and deleting

A slab is editable at any time; saving an update **replaces its brackets and surcharges wholesale**. To retire a slab without affecting past runs, turn **Disabled** on (already-computed runs keep their figures). **Delete** soft-removes it.

> ⚠️ **Current state:** income-tax slabs use a simple **Active / Disabled** model rather than the draft → submitted → cancelled lifecycle that salary structures use. There is no approval workflow on a slab today, so edits take effect for new computations immediately. Treat changes carefully — ideally create a new effective-dated version rather than editing a live one mid-cycle.

***

## Permissions

| Action                 | Permission       |
| ---------------------- | ---------------- |
| View slabs             | `payroll:read`   |
| Create / edit / delete | `payroll:config` |

***

## Related

* [Salary components](/hr/user/payroll/salary-components) — statutory PAYE is a computed component
* [Salary structures](/hr/user/payroll/salary-structures) — per-employee slab override on the assignment
* [Running payroll](/hr/user/payroll/running-payroll) — where PAYE is computed and posted
* [Statutory remittances](/hr/user/payroll/overview) — paying PAYE over to URA (covered under Running payroll)
* [Payroll overview](/hr/user/payroll/overview) — the whole chain
