---
title: "Pay shift work from the roster"
description: "The shift allowance, the night allowance and the meal allowance per shift, paid each month from the roster at your own rates, with nothing typed."
---

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

# Pay shift work from the roster

A business that works in shifts pays for them: an allowance for each shift worked, more for the
hours at night, a meal for each shift. Beelocity already knows who worked which shift, because the
roster says so ([Shifts and rotas](../hr/shifts-and-rotas.html)). So the month's payroll counts the
shifts and the night hours for each person and pays them, at the amounts your business sets, with
nobody typing them in each month.

This page is for whoever runs the pay, and for the person who keeps the roster: what the roster
plans is what the payslip pays.

<a id="set-the-amounts"></a>
## Set what a shift earns, once

The law gives shift work an allowance (loi 90-11, art. 30) and leaves the night to your collective
agreement, but neither says how much. So your catalogue starts with three allowances and no
amount:

| Allowance | Paid for |
|---|---|
| **Shift allowance** | each shift worked |
| **Night allowance** | each hour worked between 21:00 and 05:00 |
| **Meal allowance per shift** | each shift worked |

Open **Payroll › Setup › Pay elements**, open the allowance, press **Edit**, type its
**Default amount** — 300 DA a shift, for example — and press **Save**. Do it once for each one
your business pays. **An allowance with no amount pays nobody**, which is why a business that works
no shifts never sees these lines. See [Pay elements](payroll-setup.html#pay-elements) for what each
allowance counts toward.

From then on, **everybody the roster counts is paid them**. You do not give the allowance to each
person on a crew, and a new hire put on a crew is paid from their first shift.

<a id="what-the-payslip-shows"></a>
## What the payslip shows

When you [compute the month](payroll-run.html#compute-the-month), each person who worked a shift
gets a line for each allowance on the payslip's **Lines** tab: the amount a shift or a night hour
is paid as its **Base**, how many as its **Quantity**, and what they come to as its **Amount**.
Somebody who worked twenty-one shifts at 300 DA reads a **Shift allowance** of 300 DA, 21, and
6,300 DA. A person can check their own pay against their own roster.

**A shift is counted on the day it starts.** A night from 22:00 on the 31st to 06:00 on the 1st is
the 31st's, so its night hours are paid with that month. A night from 22:00 to 06:00 holds seven
night hours.

Somebody on no crew, an office worker, gets none of these lines.

<a id="the-hours-lines"></a>
## Hours on rest days and above the week

Two more lines come from the roster. You set nothing for them beyond the premiums you already keep
on **Payroll › Setup › Pay rules** ([Set what an extra hour is worth](../hr/overtime.html#set-what-an-hour-is-worth)):

| Line | Pays | At |
|---|---|---|
| **Hours on rest days** | the hours of a shift the rota puts on a public holiday, and of a call-in | the rest-day premium |
| **Hours above the week** | the hours of a week's shifts beyond the hours the contract states | the overtime premium |

Each line shows the hourly rate as its **Base**, the hours as its **Quantity** and the premium as
its **Rate**, so a person can check it.

- **A week runs from Saturday to Friday, and is paid in the month that holds its Friday.** So the
  first days of a month can be paid with the month before, and its last days with the next.
  Somebody who leaves is paid their last week on their last payslip.
- **A part-time contract is held to its own week.** Thirty hours a week planned at thirty-six pays
  six hours above the week.
- **What is paid is what was worked.** A day of leave takes its shift out of the week, and a call-in
  or a holiday's shift is paid on the rest days rather than in the week. So a week the roster marks
  as above the contract can pay nothing: the roster shows what the rota asks, and the payslip pays
  what was worked.
- **The night is the night allowance's.** These two lines take the premium of the day, never the
  night premium: the night hours of the same shifts are paid by the night allowance.
- **They count toward the legal ceiling**, with any overtime recorded by hand
  ([The legal ceiling](../hr/overtime.html#the-legal-ceiling)).
- **Neither can be typed** as a month's variable, and a typed overtime amount is refused for
  somebody the roster pays hours to: the same hours would be paid twice.
- **An office week has nothing above it.** It has no shifts for the roster to count, so extra hours
  worked there are still recorded as [overtime](../hr/overtime.html).

<a id="a-call-in"></a>
## A call-in

Somebody [called in](../hr/changing-the-plan.html#call-somebody-in) on their rest day is paid from
the roster. The shift counts as a shift worked for the allowances, and its hours go on **Hours on
rest days** at the rest-day premium. Nobody records them as overtime: Beelocity refuses an overtime
entry on a call-in's day, and a call-in on a day that already holds one, because the same hours
would be paid twice.

**A month written before this rule may hold both.** Computing it is then refused, naming the person
and the day: delete the overtime entry, and compute again.

**A call-in nobody worked is undone**, not marked absent. The attendance sheet cannot mark a rest
day, and undoing the call-in takes it off the payslip.

<a id="a-day-not-worked"></a>
## A day not worked

**A day of leave is not a shift worked**, whatever the leave: annual leave, a sickness, a leave
without pay. The roster still shows the shift, so you can see who was due, but the payslip does not
pay it. A paid day of leave is paid by the base salary, as it always was.

**A day somebody did not turn up is not a shift worked either**, once it is marked on the
[attendance sheet](../hr/attendance.html). Mark it there rather than typing an absence on the
month's variables: a typed absence lowers the base salary, but it carries no date, so it cannot say
which shift was missed, and the shift would still be paid.

<a id="one-person-s-own-amount"></a>
## Pay one person another amount

To pay one person, or one crew, another amount per shift, give them the allowance on their record:
open the employee, the **Pay** tab, press **Add**, pick the allowance and type their **Amount** per
shift or per night hour ([Give an employee their allowances](payroll-setup.html#give-an-employee-their-allowances)).
Their own amount replaces the catalogue's for as long as the line runs.

Type an amount of **0** to leave somebody out of an allowance altogether.

**Deactivating an allowance stops paying it to the roster.** It is then paid only to the people who
are still given it on their record, until their line ends.

**A month that differs** is a variable, as for any allowance: a figure typed on the month's
[variables](payroll-run.html#enter-the-months-variables) replaces that month's line for that
person.

Source: https://docs.beelocity.com/en/payroll/shift-pay/index.mdx
