---
title: "Monthly payroll"
description: "Open each month's payroll, see who it pays, and work out every payslip from the contracts, the allowances, the leave and the figures the law fixes."
---

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

# Monthly payroll

Every month the business pays the people who worked for it. In Beelocity that month is a
**payroll run**: you open it, it lists everyone it will pay, and it works out each person's
payslip from what is already on file — their contract, the allowances you give them, the leave
they took — and from the figures the law fixes for that month, which you keep on
[Payroll setup](payroll-setup.html).

This page is for the owner, the clerk or the accountant who runs the month.

<a id="the-months-steps"></a>
## The month's steps

A month's page opens on **The month's steps**: the six steps of a month, in order. Each reads
**Completed**, **In progress** or **Pending**, with one sentence saying what it did or what it waits
for, and the step in progress carries its button — so you work the month from the top of its page.

| Step | What you do | Walked in |
|---|---|---|
| **Prepare** | Check what the month will count and type its variables | [Enter the month's variables](#enter-the-months-variables) |
| **Compute** | Work out every payslip; press it again after any change | [Compute the month](#compute-the-month) |
| **Review the payslips** | Read them, the ones carrying a warning first | [Read a payslip](#read-a-payslip) |
| **Close the month** | Number the payslips and freeze the month | [Close the month](#close-the-month) |
| **Pay the salaries** | Record one payment per person out of the salary account | [Paying the salaries](payroll-payment.html#pay-the-month) |
| **Declare** | Carry the figures to the tax office and the CNAS, and pay them, by the dates shown | [Declare the month](#declare-the-month) |

- **The steps record nothing of their own.** They follow the month's status: computing, closing
  and paying move them, whether you pressed the button here or in **More actions**.
- **A step whose button your role does not include waits**, with no button, for somebody who has
  it.
- **Prepare also says what the roster gives the month**, read by itself before anybody computes:
  the shifts worked, the night hours, the hours on rest days and the hours above the week, which
  are what the payslips will pay, with a link to the month's **Roster**
  ([Pay shift work from the roster](shift-pay.html)). A month nobody works shifts in says
  nothing of it.
- **Declare is done once the month's declarations are paid.** The step shows the two dates, each
  with the article it comes from and whether it is paid, and carries **Pay a declaration** until
  both are.

<a id="open-the-month"></a>
## Open the month

Open **Payroll › Months** and click **New**. The **Year** and the **Month**
are already filled in: the month after the last one you opened, or the current month if you have
not opened one yet — never next month; the **Run number** is the next in the series, and you may type your
own instead. Click **Save**: the month is open, as a **Draft**.

Months are opened **in order, one at a time**:

- **A month is opened once it has begun.** You can open the current month before it ends — most
  businesses work out the pay a few days before paying it — but never next month.
- **Only one month is a draft at a time.** While a month is still a draft, Beelocity will not open
  another; it tells you which run is still open. Close it first.
- **Months go forward.** Once a month has its run, you cannot open that month again, nor one before
  it. A month you skipped — before you started using Beelocity, say — simply has no run.

A draft month you opened by mistake is deleted: open it and choose **Delete**.

<a id="who-the-month-pays"></a>
## Who the month pays

The **Covered employees** tab lists everyone the month will pay: **every person with a signed
contract in force on at least one day of the month**. Someone hired on the 16th is there, and so is
someone who left on the 10th. A contract still in draft pays nobody, so sign it on the person's
record before you work out the month (see [Contracts](../hr/contracts.html)).

The list is worked out again each time you open the tab, so a contract signed after you opened the
month adds its person without anything else to do.

<a id="enter-the-months-variables"></a>
## Enter the month's variables

Most of a payslip is already on file: the contract says the salary, and the person's own
allowances say what they get every month. The **Variables** tab is for what is true of **this
month only** — a bonus, an advance, overtime, or days of absence nobody recorded as leave.

Open the tab and click **Add**, then fill the row:

- **Employee** — only the people this month pays are offered.
- **Pay element** — what the figure is. Every element you still use is offered **except the base
  salary**, which comes from the contract; to change that, record an amendment
  (see [Contracts](../hr/contracts.html)).
- **Quantity** or **Amount** — an absence is typed as **days**; everything else is typed as an
  **amount**. The row asks for the one its element needs, and closes the other.
- **Note** — why, in your own words: *end-of-year bonus*, *advance of the 12th*.

What the figure does depends on the element:

- **For something the person already gets every month, it replaces that month's figure.** A
  transport allowance of 2,000 DA for someone hired mid-month, or 0 DA for someone away all of it.
- **For anything else, it adds a line** — a performance bonus, an advance to be withheld, overtime
  paid as an amount.
- **For an absence, it adds unpaid days**, on top of any unpaid leave already approved and every
  day marked on the [attendance sheet](../hr/attendance.html). You type the days; what each one
  costs is worked out when the month is computed. Type them here only for a day the sheet does
  not hold — a business that keeps no sheet, or a day found after its month was closed.

**One figure per element per person per month.** If someone already has that element for the
month, edit the row that is there rather than adding a second — Beelocity refuses the duplicate.

Change a figure by typing over it, and remove one you typed by mistake with **Delete**. Once the
month is closed, its variables are frozen with it: a correction then goes on the next month.

**Overtime has a second road, and you use one or the other.** If you record the extra hours as
they happen, on the **Overtime** tab of **Human Resources › Attendance**, Beelocity prices them for
you and puts them on the payslip without a variable — see [Overtime](../hr/overtime.html). If you do not count hours, keep typing an overtime amount here. What
you cannot do is both for the same person in the same month: Beelocity refuses to compute rather
than guess which you meant, and names the person.

<a id="compute-the-month"></a>
## Compute the month

With the variables in, open the run, open **More actions** and choose **Compute the month's
payslips**. Beelocity works out **one payslip per
person the month pays**, all in one go, and shows the month's totals on the run itself: how many
people, the gross, the contributions, the income tax, the net and what the month costs the
business.

Each payslip is worked out from four things, in this order:

1. **The days.** A payroll month is counted as **thirty days**, whatever the calendar says. Someone
   employed on every day of the month has thirty; someone hired on the 16th has the days from then;
   someone who left on the 14th has fourteen. The salary is shared over those days — half a month
   employed pays half the salary.
2. **What the person gets.** Their salary from the contract in force on their last day employed,
   and the allowances and deductions on their record that day. **An allowance of a set amount is
   not reduced for a part month** — it is what it says for the month. If half of it is what you
   mean, type the half as a variable. An allowance that is a percentage of the salary follows the
   salary down.
3. **The days not paid.** Approved leave of a kind that is not paid — sick leave, unpaid leave, an
   unjustified absence, including every day you marked on the
   [attendance sheet](../hr/attendance.html) — plus any absence days you typed in here. The two are
   added: a day you ticked and a day you typed are two days away, not one recorded twice. Each one costs a share of the salary,
   and which share is the **Absence basis** on **Payroll › Setup › Pay rules**: a thirtieth of the
   salary per calendar day by default, or a twenty-sixth or a twenty-second per working day — and
   for somebody on a crew, their working days are the days their rota gives them a shift
   ([Shifts and rotas](../hr/shifts-and-rotas.html)). **A public holiday is never an unpaid day**, and the total taken off never exceeds the salary the
   month pays. Annual leave costs nothing: the days are shown on the payslip and the month is paid
   as usual.
4. **The contributions and the tax**, from the figures in force on the month's last day
   ([Payroll setup](payroll-setup.html)).
5. **A departure's final pay**, for someone who left in the month and whose
   [final pay](final-pay.html#settle-a-departure) is confirmed: its leave payout, notice,
   indemnity and severance join their payslip as lines of their own, each with how it was reached,
   and the contributions and the tax are worked out again with them. Someone who left with no
   confirmed final pay is flagged **Left without final pay** on the **Payslips** tab — a warning,
   because somebody who took all their leave may be owed nothing more.

**An example.** Someone on 60,000 DA a month, with a transport allowance of 4,000 DA, away three
days on unpaid leave, in an organization that counts a thirtieth per calendar day. Their salary
line is 60,000 DA — they were under contract all month. The transport allowance is 4,000 DA. A day
costs 60,000 ÷ 30 = 2,000 DA, so three days take 6,000 DA off. The gross is 58,000 DA, and the
contributions and the tax are worked out from there.

**Compute again whenever anything changes.** Pressing it a second time works out the whole month
afresh and replaces what was there — nothing is kept from the time before. So change a variable,
approve a leave request, record an amendment, and press **Compute the month's payslips** again.

**Nothing on the run is hidden by where the month stands.** Its **More actions** lists the next
steps, then the papers it prints and exports, then **Delete**, and whatever the month is not ready
for is greyed out: **Pay the salaries** and the export until the month is closed, **Print all
payslips** and the transfer listing until it is computed. Point at a greyed-out action, or reach
it with the keyboard, and it says what to do first. Once the month is closed, computing it,
editing it and deleting it are greyed out the same way: a correction goes on the next month.

**If the month cannot be worked out, nothing is written.** Beelocity tells you which person and
why, and the payslips you already read stay exactly as they were. The two you are likely to meet:

- **The deductions take someone below zero.** An advance larger than the month pays. Lower it, or
  spread it over two months.
- **Someone is no longer employed in the month.** Their contract was ended after you typed their
  variables. Remove those variables and compute again.
- **Someone has a confirmed final pay and no contract in the month.** Their contract was changed
  after the final pay was confirmed. Reopen the final pay, or correct the contract.

<a id="read-a-payslip"></a>
## Read a payslip

The **Payslips** tab lists the month's payslips, one per person, with the days, the gross and the
net. Open one to see the whole month: the person and the contract it was worked out from, the days
employed, the days not paid and the annual leave taken, then the figures — what is earned, what is
withheld, how the income tax was reached, and what the month costs the business on top.

The **Lines** tab of a payslip shows every element of pay by name, with what each one was worked
out from and what it came to. This is what the law requires a payslip to show, and it is the same
list the printed payslip carries. Somebody on a crew may also have **Hours on rest days** and
**Hours above the week**, the hours the roster counted, each with the hourly rate, the hours and
the premium ([Pay shift work from the roster](shift-pay.html#the-hours-lines)).

A payslip is never edited. It is what the computation answered, so the way to change one is to put
the cause right — a variable, a leave request, an amendment — and compute the month again.

<a id="print-the-payslips"></a>
## Print the payslips

Every payslip prints, in the language your documents are set to, with every element of pay by
name — which is what the law requires you to hand over.

- **One payslip**: open it from the **Payslips** tab and choose **Print payslip** or **Download
  payslip**, then the language.
- **The whole month**: on the run itself, choose **Print all payslips**. Beelocity works through
  them and hands you the files as they are ready.

The page carries what an inspector or a bank looks for: your own details and your employer number
with the social-security fund, then the person — name, employee number, post, hire date, their own
fund number and the children they claim. Then the month: the days under contract, the days not
paid, the annual leave taken and what is left of it. Then every element of pay by name, with what
it was worked out from, in two columns — **Gains** and **Retenues**. Then the figures in order,
down to the net, and the net written out in words. What you pay on top — your contribution, the
social works, and what the month cost you altogether — is set apart below, because none of it is
taken out of the employee's pay.

**A draft month prints as a draft.** Before you close the month the payslips carry no number and
each download is worked out afresh, so a payslip you print, correct and print again shows the
correction. Once the month is closed each payslip has its number and its file is kept: printing it
again hands you the same file, which is what makes it the copy of record.

<a id="close-the-month"></a>
## Close the month

When the figures are right and the pay is going out, open the run and move it to **Closed** on
the status bar. Closing is the moment the month becomes final, and Beelocity does four things at
once:

1. **It works the month out one more time and compares.** If anything it reads has moved since
   you last computed — a variable edited, a leave request approved, an amendment recorded, a new
   legal figure entered — it refuses and asks you to compute again. That way what you read is
   what gets frozen, and nobody closes a month on figures they never saw.
2. **It numbers every payslip**, in the order of your employee numbers. Until now they had no
   number; from here each one is a document of record with its own.
3. **It freezes the month.** The run, its variables and its payslips stop accepting changes. The
   totals stay as they are.
4. **It prepares the payslip files**, so they are ready when you or the employee ask for them.

**Closing needs its own permission.** A person who may open and work out a month cannot
necessarily close it — the right is granted separately, so an owner can keep it for whoever signs
off the pay.

<a id="a-closed-month-does-not-reopen"></a>
### A closed month does not reopen

There is no way back. The payslips are what you declared the month on, and two versions of one
month would leave nobody able to say which was filed.

**A correction goes on the next month.** Something you owe somebody is an earning on the next
run — call it what it is in the note — and something you overpaid is a deduction. That is how
Algerian payroll handles it on paper too.

**Closing also locks the contract amendments the month read.** Once payroll is closed through, say,
the end of September, you cannot record, move or delete an amendment dated on or before that day:
it would change the salary a closed payslip was worked out from. Date the change on the first day
of an open month, and put what is owed for the closed ones on that run as a variable.

**What a closed month stops watching.** Leave approved afterwards for a day inside it, a contract
ended with a date inside it, a pay element changed over those dates — none of these reopens the
month and none of them is refused. They are facts about the world, and the next run acts on them.

<a id="declare-the-month"></a>
## Declare the month

A closed run carries one more tab: **Declaration figures**. It is the month read back the way the
two declarations ask for it, so the accountant copies from one screen instead of adding payslips
up — and takes it away as a spreadsheet file from **More actions**.

The tab appears **once the month is closed**, and only then. A draft's figures still move, and a
figure copied onto a form from a month you have not closed is the mistake this tab exists to
prevent.

What is on the tab, which figure goes on which form, by when, and how to export them are all on
[Declaring the month](declarations.html). Paying the `G50` and the contributions is **Pay a
declaration**, in the **Declare** step or on **Monthly declarations**
([Pay a declaration](declarations.html#pay-a-declaration)).

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