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

# Compensation

> Role classification, salary bands, dated assignments, and the employee self-view.

The compensation module explains **pay policy**: what roles exist, what each is worth,
and where a given person sits and why.

<Warning>
  Compensation never writes an employee's actual salary. That lives on the [employment
  period](/guides/lifecycle/employee-records#employment-periods). The separation is deliberate —
  policy and fact are different things, and conflating them is how a band update silently becomes a
  pay change.
</Warning>

## Roles (Funktionsstufen)

A catalog of role classifications: a code, a name, a description of the scope and
responsibility the level represents. Roles can be scoped to a legal entity where
different Rechtsträger genuinely classify differently.

Codes are unique, and a role in use by an assignment cannot be deleted — the history
has to stay resolvable.

## Salary bands

A band attaches a pay range to a role. Two shapes are supported:

| Shape   | What it is                                                   | Suits                                         |
| ------- | ------------------------------------------------------------ | --------------------------------------------- |
| `RANGE` | A minimum and a maximum, continuous.                         | Private-sector style discretionary placement. |
| `STEPS` | Discrete steps, typically by service years or qualification. | Public-sector and school salary scales.       |

Bands are dated, so an annual revision creates a new version rather than rewriting
history. A payslip from two years ago still resolves against the band that applied
then.

## Assignments

An assignment places an employee in a role, and in a step where the band uses steps,
from a given date. Assignments are dated for the same reason employment periods are:
a promotion is a new assignment, not an overwrite.

Each assignment records the **placement rationale** — why this person sits at this
point in the band. That is the sentence a manager needs when the question is asked, and
the record that makes pay decisions reviewable.

## The employee self-view

Employees see their own compensation picture in the portal and the mobile app:

* Their role and what it means.
* The band that applies to it.
* Where they sit within it, and the recorded rationale.

<Note>
  The self-view is strictly a self-view. It does not compare the person against colleagues, does not
  show a percentile, and does not rank. Per [ADR-006](/concepts/design-philosophy), the product
  explains pay policy — it does not gamify it.
</Note>

## Salary visibility

Compensation policy is one thing; individual salary **amounts** are another and are
closed by default.

| Who                                     | Sees                                                                            |
| --------------------------------------- | ------------------------------------------------------------------------------- |
| `ADMIN`+ with `salaries:view-all`       | Everything.                                                                     |
| HR staff with a **salary access grant** | Only the team or Standort the grant covers.                                     |
| Managers                                | Strictly below themselves in the org graph — never at or above their own level. |
| Everyone else                           | Masked.                                                                         |

Masking happens at the API layer. A masked field is masked in the response, not hidden
in the browser.

Administering grants is `ADMIN`-only. Granting salary access is itself a
compensation-sensitive decision, so it does not sit with the people who use it.

## Permissions

| Capability             | Role        |
| ---------------------- | ----------- |
| `compensation:view`    | `HR_STAFF`+ |
| `compensation:manage`  | `HR_STAFF`+ |
| `salaries:view-all`    | `ADMIN`+    |
| `salary-access:view`   | `ADMIN`+    |
| `salary-access:manage` | `ADMIN`+    |

Bands and assignments are HR master data — unlike the legal-entity records, they do not
re-route statutory declarations — so HR staff manage them. Employees read their own
view through a session-scoped portal route that needs no role permission at all.
