> 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-setups/setup-attendance-app-branches.md).

# Setup Attendance App Branches

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

Navigate to **Payroll Setups** and click on "Setup Attendance App Branches".

**Setup Attendance App Branches** decides, for each branch, where its staff may punch with the attendance app — its **sites** — what time zone the branch works in, and whether a day with nothing recorded is marked absent automatically. Set the branches up before the app users.

## The screen

* **Top: the branches**, every branch, one line each.
* **Bottom: the sites** of the branch selected above, with a blank last line for a new site.

### **Branch columns**

| Column            | What it means                                                                                                                                                                                                     |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Branch**        | The branch.                                                                                                                                                                                                       |
| **Auto Absent**   | **Yes**: an app user of the branch with nothing recorded for a working day is marked absent once their shift has ended and **After Minutes** have passed — see **How Auto Absent works**.                         |
| **After Minutes** | Minutes after the shift ends before the day is marked: 0 to 1440 (120 = 2 hours to start).                                                                                                                        |
| **Time Zone**     | The branch's local time. A phone's punch time is converted to it, which decides the attendance day and the times attendance is judged on, late marks included. **(SERVER TIME ZONE)** uses the server's own time. |
| **App Users**     | Filled in by the screen: how many employees of the branch have the app turned on.                                                                                                                                 |
| **Sites**         | Filled in by the screen: how many sites the branch has, inactive ones included.                                                                                                                                   |

### **Site columns**

| Column                      | What to enter                                                                                            |
| --------------------------- | -------------------------------------------------------------------------------------------------------- |
| **Site Name**               | The site's name, in capitals, unique within the branch.                                                  |
| **Latitude**, **Longitude** | The site's position — see **Set a site's position** below.                                               |
| **Radius M**                | How far from the position, in metres, a punch still counts as at the site: 20 to 5000 (100 to start).    |
| **Inactive**                | **Yes** for a site no longer used: new punches are no longer checked against it.                         |
| **Punches**                 | Filled in by the screen: how many punches were judged against the site (it was the nearest active site). |

## Set up a branch

### **Step 1: Branch settings**

* Select the branch in the top grid. Set **Auto Absent** and **After Minutes**, and choose its **Time Zone** if it differs from the server's.

### **Step 2: Add the sites**

* In the bottom grid, type the **Site Name** on the blank last line, then its position, and its **Radius M**.
* A branch with no active site lets every punch through, wherever it is made.

### **Step 3: Save**

* Press **Save** and confirm.

## Set a site's position

* In **Google Maps**, right-click the spot and click the numbers shown at the top of the menu: they are copied as *latitude, longitude*.
* Paste them into **Latitude** or **Longitude**: both fill. (A space or a semicolon between the two numbers works too.)
* Select the site and press **Show on Map** to open it in Google Maps and check the spot.

On the web there are two more ways — **My Location** and **Pick on Map**. See [Using These Screens on the Web and Phone](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-setups/shift-roster/using-these-screens-on-the-web-and-phone.md).

> **Example —** A store's entrance is at 28.6139, 77.2090 and its car park is about 80 metres away. HR pastes *28.6139, 77.2090* into **Latitude**, sets **Radius M** to **150** so a punch from the car park still counts, presses **Show on Map** to check, and saves.

## How Auto Absent works

For a branch with **Auto Absent** on:

* It looks at the branch's **app users** — employees with the app turned on who are still working.
* A day is marked absent (**LP**) when the employee has **nothing** for it: no attendance, no gate entry, no app punch, and no pending or approved leave or missed-punch request. On a rostered half-day off it is charged as a half leave instead (see [Setup Week-off Patterns](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-setups/setup-week-off-patterns.md)).
* It waits until the shift has ended plus **After Minutes**, in the branch's time zone. A day with no shift times ends at midnight; a night shift ends the next morning.
* Week-offs, holidays and days whose payroll is processed are skipped. Only today and the two days before are checked, and never a day before the app was turned on or before the employee joined.
* If a punch reaches the server later, the absent mark is replaced. The employee is notified in the app.
* The check runs automatically every 30 minutes.

Days still marked absent this way are listed in [Attendance App HR Review](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-entry/attendance-app-hr-review.md) for HR to correct.

## Deleting a site

* A site no punch has used can be deleted (**F8**); confirm the question. It goes when you **Save**.
* A site that punches have used cannot be deleted — tick **Inactive** instead.

Closing the screen with changes not saved asks first: **No** goes back so you can save.

## Messages you may see

| Message                                                                                                                                                                        | Why                                                                                              | What to do                            |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------- |
| Enter the latitude as a number (for example 28.6139), or paste 'latitude, longitude'. / Enter the longitude as a number (for example 77.2090), or paste 'latitude, longitude'. | What was typed is not a number — for example a comma used as the decimal point, or a degree sign | Use a dot for decimals                |
| Enter the site name.                                                                                                                                                           | A site has a position but no name                                                                | Type the name                         |
| …: enter the position (latitude, longitude).                                                                                                                                   | The site has a name but no position                                                              | Paste the position from Google Maps   |
| …: the latitude must be between -90 and 90. / …: the longitude must be between -180 and 180.                                                                                   | The position is out of range                                                                     | Check the numbers                     |
| …: the radius must be 20 to 5000 metres.                                                                                                                                       | **Radius M** is out of range                                                                     | Enter 20 to 5000                      |
| There is already a site '…' in this branch.                                                                                                                                    | Two sites of one branch have the same name                                                       | Rename one                            |
| Delete site '…'?                                                                                                                                                               | Deleting a site                                                                                  | **Yes** to delete it on Save          |
| Punches were judged against '…'; it cannot be deleted. Tick Inactive instead.                                                                                                  | Deleting a site punches have used                                                                | Tick **Inactive**                     |
| A site used by punches cannot be deleted; tick Inactive instead.                                                                                                               | On **Save**: a punch used the site after you deleted it on screen                                | Tick **Inactive**                     |
| …: the time zone '…' is not known on this server.                                                                                                                              | On **Save**: the chosen time zone is missing on the server                                       | Choose another, or (SERVER TIME ZONE) |
| Select a site with a position first.                                                                                                                                           | **Show on Map** on a site with no position                                                       | Set its position first                |
| There are changes not saved yet. Close without saving?                                                                                                                         | Closing with changes not saved                                                                   | **No** goes back so you can Save      |
| Modification rights are not available...                                                                                                                                       | On **Save**: your user may only view this menu                                                   | Ask for modify rights in User Access  |

## On the web

The same screen is on the web. On a phone, a switch shows the **Branches** or the **Sites**, one at a time. **Show on Map** is a link that opens Google Maps; **My Location** and **Pick on Map** set a site's position — see [Using These Screens on the Web and Phone](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-setups/shift-roster/using-these-screens-on-the-web-and-phone.md).


---

# 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-setups/setup-attendance-app-branches.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.
