> For the complete documentation index, see [llms.txt](https://kb.logicerp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.logicerp.com/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-entry/generate-roster.md).

# Generate Roster

**Available on:** Desktop · Web · Phone

Navigate to **Payroll Entry** and click on "Generate Roster".

**Generate Roster** builds or rebuilds the roster for many employees at once, and shows the result for each one. Use it after changing a pattern, shift or rotation, or to extend everyone's roster into a new payroll year. Saving in [Allocate Roster](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-entry/allocate-roster.md) already offers to generate the employees you changed there.

How a roster is worked out is explained in [How Generating the Roster Works](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-setups/shift-roster/how-generating-the-roster-works.md).

## Generate

### **Step 1: Choose the employees**

* Press **Select Employees** to pick from the working employees, or **All Rostered Employees** for everyone with a roster line who has not left. Each choice replaces the list in the grid.
* The line under the dates then reads *N employee(s). Press Generate to build their roster from … to …*.

### **Step 2: Check the dates**

* **From** starts at today. You may set it earlier, but days before today are never changed.
* **To** is set once the employees are loaded: the end of the payroll year that covers today. If none does, it is the last Date To of their roster lines, or one year ahead when a line has no end date — the line under the dates says so. Choosing the employees again resets it, so change **To** after choosing them.

### **Step 3: Generate**

* Press **Generate** and confirm. The question repeats which days are never changed.
* A summary then shows how many employees were done and failed, and how many days, week-offs and holidays were written.

## The result

The grid shows each employee's name, codes and number of **Roster Lines**, and then:

| Column             | What it shows                                                                                                                                                  |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Result**         | **DONE** or **FAILED**.                                                                                                                                        |
| **Days**           | Roster days written in the range. Days changed by hand and protected days are not counted.                                                                     |
| **Week-offs**      | Week-offs written.                                                                                                                                             |
| **Holidays Added** | Branch holidays added to the employee's list — including, the first time an employee is rostered, the branch holidays copied for the rest of the payroll year. |
| **Message**        | Why a failed employee was not generated, or *No roster lines - nothing changed.* for an employee with no lines (shown as DONE).                                |

A failed employee is not changed at all, and their counts stay blank; the others still go through. Fix the reason in the **Message** column, then choose just that employee with **Select Employees** and generate again.

## Days that are never changed

* Days before today, days outside an employee's joining and leaving dates, and days in payroll periods already processed.
* Days changed by hand in [Roster Calendar](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-entry/roster-calendar.md) keep their shift and week-off.

> **Example —** HR has set up the new payroll year, April to March. On 1 April they open **Generate Roster**, press **All Rostered Employees** — 240 employees — check that **To** shows 31 March of the next year, and press **Generate**. The summary shows 238 done and 2 failed; the Message column of one says a rotation it uses does not exist. HR gives that employee a valid rotation in [Allocate Roster](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-entry/allocate-roster.md), then picks the two with **Select Employees** and generates again.

## Messages you may see

| Message                                                                                  | Why                                                                      | What to do                                                 |
| ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ---------------------------------------------------------- |
| No employee has a roster line yet. Give employees their roster in Allocate Roster first. | **All Rostered Employees** found nobody                                  | Allocate rosters first                                     |
| Choose the employees first: Select Employees, or All Rostered Employees                  | **Generate** with no employees chosen                                    | Choose the employees                                       |
| Enter a valid From date / Enter a valid To date                                          | A date is missing or not a date                                          | Correct it                                                 |
| To cannot be before From                                                                 | Dates reversed                                                           | Correct the dates                                          |
| Generate the roster for … employee(s) from … to …?                                       | The confirmation                                                         | **Yes** to generate                                        |
| Generated … to …: … done, … failed. Days written …, week-offs …, holidays added ….       | The summary after generating                                             | If any failed, read the Message column                     |
| Roster …: shift / rotation / week-off pattern … does not exist.                          | In the Message column: a line uses something that can no longer be found | Fix the employee's line in Allocate Roster, generate again |
| Modification rights are not available...                                                 | On **Generate**: your user may only view this menu                       | Ask for modify rights in User Access                       |

## On the web

The same screen is on the web, and works on a phone: **From** and **To** sit side by side, with **Generate** and **Close** at the bottom right.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://kb.logicerp.com/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-entry/generate-roster.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
