# Casual Worker Management

**Casual Worker Management** is accessed under **Sessions > Casual Workers** tab. It gives Admins and Managers a real-time view of who is assigned to a session, their role breakdown, and current attendance status.

## Session Staffing Summary

The top of the page shows three at-a-glance stats for the session:
**Confirmed**
Workers with a confirmed booking for this session.

**Actual**
Workers who have checked in and are currently on-site.

**Required**
Total staff needed to meet the session's requirements.

---

## Workforce Summary

Below the stats, the **Workforce Summary** shows a breakdown of assigned workers by role, displayed as both a fill-rate list and a bar chart.

- Each role shows a **fill rate** — the number of confirmed workers versus the number required (e.g., `5/10` means 5 confirmed out of 10 required).
- The bar chart visualises coverage percentage per role. Bars are colour-coded:
  - **Red** — significantly under-resourced (well below required)
  - **Orange/Amber** — partially staffed or overstaffed
  - **Green** — fully staffed or at capacity
- Coverage can exceed 100% if more workers are confirmed than required (e.g., `4/3` shows as over 100%).
- Roles with zero confirmed workers will show an empty or flat bar.

### Re-assigning Roles

Click **Re-assign Roles** to change a worker's role within the session. This is useful when staffing requirements shift on the day or a worker needs to cover a different position.

![Assign Available Casual Workers](../../../../assets/manager/Casual%20Worker%20Management-1.png)

---

## Worker Profiles

Each worker is represented by a card detailing their qualifications and history.

![Casual Worker Management Dashboard](../../../../assets/manager/Casual%20Worker%20Management.png)

### Performance & History

- **Total Booking:** Total number of successful sessions completed.
- **Strikes (e.g., 0/6):** Tracks disciplinary actions. Workers who reach the maximum strike limit (6) may be restricted from further bookings.
- **Booking Status:** Current status for this session (e.g., **Confirmed Booking**, **Checked In**).

### Contact & Role

- **Mobile:** Direct contact number for the worker.
- **Role:** Specific shift assignment (e.g., **Security**, **Traffic Marshall**).

---

## Worker status labels :badge[New]{variant="success"}

The casual worker list shows a live status label on each worker's row. Labels update in real time without requiring a page refresh.

| Label | What it means |
| :--- | :--- |
| **On Site** | Worker has checked in and is currently on site |
| **On Position** | Worker is actively at their assigned position |
| **On Break** | Worker has started a break |
| **Late Acknowledged** | Worker has acknowledged a late check-in prompt |
| **Liveness Requested** | A liveness check has been sent and is awaiting response |
| **Liveness Pending** | Liveness check is in progress |

---

## Filtering Workers

Use the **Filter** icon next to the search bar to find specific staff members using advanced criteria.

![Filter Casual Workers Modal](../../../../assets/admin/casual-worker-filter.png)

1. **Role**
   Filter by specific job roles (e.g., Security, Traffic Marshall).

2. **Strikes Slider**
   Filter workers based on their performance record. You can set the **Maximum Strikes** limit to exclude workers with poor attendance or conduct records.

3. **Booking Status**
   Narrow down by confirmed, pending, or available staff.

4. **Qualifications**
   Filter by specific skills or certifications required for the session.

---

## Management Actions

- **Confirm Casual Workers:** Finalise the assignment and send notifications to the selected workers.
- **Cancel:** Revert unsaved selection changes.
- **Search:** Use the **Search Casual Workers** bar to find individuals by name or ID.
- **Force Check-Out:** Manually end a worker's session. See [Force Checkout](#force-checkout) below for the full flow.
- **Force Check-In:** Manually check in a worker who hasn't clocked in themselves. See [Force Check-In](#force-check-in) below.
- **Restore Check-In:** If a worker's check-in needs to be reinstated, managers can restore it from this panel. Once restored, the worker receives a notification and is shown a pop-up modal in the app prompting them to reactivate live tracking.

![Force Check-Out Modal](../../../../assets/manager/Force%20Check%20Out.png)

:::caution[Checkout Actions]
Reverting or forcing a checkout in the payroll section now requires a **confirmation prompt** before the action is applied, to prevent accidental changes.
:::

---

## Worker Audit Details

Click on any worker card to open the **Audit Details** panel. This panel has three tabs:

### Overview

Displays the worker's personal information, job details, and performance record for the session.

![Worker Audit Details - Overview](../../../../assets/manager/Overview.png)

### Attendance

Shows time tracking details including check-in/out times, total hours, liveness check results, and actions to request a new liveness check or send an overtime offer.

![Worker Audit Details - Attendance](../../../../assets/manager/Attendance.png)

### Workforce Monitoring

Displays the worker's current GPS coordinates, last update time, and full location history for the session.

![Worker Audit Details - Workforce Monitoring](../../../../assets/manager/Location.png)

---

## Force Check-In

When a worker hasn't checked in themselves, managers and admins can force check them in. Select the worker and choose one of three modes:

| Mode | What it does |
| :--- | :--- |
| **Immediate** | Checks the worker in right now. If triggered before their booking start time, the system defaults the check-in to the booking start time. |
| **Minute offset** | Enter a relative number of minutes — negative to backdate (e.g. -10 = "they were here 10 minutes ago") or positive to forward-date. Use this when the worker was physically present but didn't clock in themselves. |
| **Booking start time** | Sets the check-in to the worker's scheduled booking start time. |

Direct timestamp entry is not permitted. Managers work in minutes relative to now or to the booking start, not a specific clock time.

---

## Force Checkout

When a worker is still marked as checked in but needs to be manually checked out, managers and admins can force checkout through three modes:

| Mode | What it does |
| :--- | :--- |
| **Immediate** | Checks the worker out right now. |
| **Scheduled timer** | Manager sets a number of minutes from now — flexible, not fixed (e.g. 25 min, 40 min). The checkout fires automatically when the timer expires. |
| **Booking end time** | Sets the checkout to the worker's scheduled booking end time. |

Manual timestamp entry is not permitted in any mode. Bulk selection is supported via per-row checkboxes. A mandatory reason is required for every force checkout action.

---

## Shift Champion

Managers can designate one worker per session as the **Shift Champion** directly from the casual worker list.

1. Find the worker's row and click **Assign as Shift Champion**.
2. Enter a mandatory reason for the designation and confirm.

Once assigned, a badge appears on the worker's row. A permanent entry is also added to the worker's **Key Indicators** profile showing the session name, date, and reason.

---

## Payroll

Click **View Payroll** from the session view to access the **Casual Worker Payroll Details** screen, where you can review and approve hours for all workers in the session.

![Casual Worker Payroll Details](../../../../assets/manager/View%20Payroll.png)

### Payroll Details

Click on any worker row to open their individual **Payroll Details** panel. The panel has two tabs:

- **Overview** — attendance timeline, late checkout details, break details, and pay details.
- **Notes** — add free-text notes to the payroll record and view a threaded message history. Useful for communicating decisions and keeping a record of any exceptions.

![Payroll Details Panel](../../../../assets/manager/Payroll%20Details.png)

To adjust check-in or check-out times, click **Edit Time Adjustment**.

![Edit Time Adjustment](../../../../assets/manager/Payroll%20Details-1.png)

Click the break total on a worker row to see a breakdown of all breaks taken.

![Total Number of Breaks](../../../../assets/manager/Total%20Number%20of%20Break.png)

### Rounding rules

Payroll times are rounded before any approval logic is applied:

| Time | Rounding rule |
| :--- | :--- |
| **Check-in** | Rounded based on a first-minute threshold rule to ensure consistency across payroll records |
| **Check-out** | Rounded to the **booking end time** |

These rounded times are used for all payroll calculations, not the raw check-in and check-out times.

### Auto-approval

Records where the rounded check-in and check-out both fall within the booking window (up to 30 minutes past the booking end) are automatically approved with no manager action required.

:::note
Auto-approval is still under testing and has not been fully validated. Review auto-approved records to confirm they are accurate.
:::

### Manual approval for extended hours

Records where checkout exceeds the booking end by more than 30 minutes surface for manual manager review. Use the **Approve** or **Reject** buttons on the worker's row:

- **Approve** — enter the number of minutes to apply to payroll. Partial approvals are supported — you do not have to approve the full duration worked. A mandatory note is required before submitting.
- **Reject** — discards the overtime and reverts payroll to the booking end time.

### Bulk actions

Select multiple workers using the per-row checkboxes to apply actions in bulk. Available bulk actions: **Approve**, **Reject**, and **Mark as Did Not Show**. A mandatory reason is required when bulk approving.

### Finalising Payroll

Once all workers are approved, click **Submit** to finalise the payroll. A confirmation prompt will appear before the data is locked and sent to Axlr8.

![Confirm Payroll Finalisation](../../../../assets/manager/Successful.png)