Ctrl+K

Attendance Management

Attendance Management in JobNext records how many hours each employee worked on each job site each day. This data is critical because it feeds directly into payroll: without finalized attendance, payroll cannot be run. The module handles uploading raw attendance data, validating it against business rules, and freezing (finalizing) it so that payroll can calculate salaries, overtime, and leave deductions accurately.

Attendance Management 0:19

Navigate to HR > Attendance from the left sidebar to access the Attendance module.

Attendance main page showing Past Months grid with status badges, Punch Manager button, and action buttons for Finalize Attendance and Upload 30 Day Attendance
Attendance main page — Past Months dashboard with finalization status per month

Attendance Workflow Overview

The end-to-end attendance workflow follows these stages:

1. Upload 30-Day Excel or Punch Manager 2. Validate Business rules, leave checks, OT rules 3. Review By Jobs or By Staff Fix mismatches 4. Finalize Lock records, compute hours & OT 5. Payroll Feeds salary calculation Punch Manager Biometric / mobile Copy to Attendance ↑ Copy to Timesheet → → Timesheet module Attendance can also be generated from Timesheet conversion (see Timesheet module)
Key Concept: Attendance vs. Timesheet

Attendance = day-wise record of employee presence (present, absent, leave, LOP) on a job, with total hours. Timesheet = job-wise hours per day (how many hours on which job). Timesheets can be converted to attendance records. Both can feed into payroll, but attendance is the required input for payroll salary calculation.

Past Months Dashboard

The main Attendance page shows the Past Months grid, which gives an at-a-glance view of attendance status for each month across all job sites.

ColumnDescription
Status BadgeRed "Action needed" badge appears when there are unfinalized attendance records for the month.
Month-YearThe calendar month (e.g., Oct-2025, Sep-2025).
# of SitesNumber of job sites that have attendance data for this month.
# EmployeesShows four colour-coded badges:
  • Total — total employees with any attendance data
  • Uploaded — employees whose attendance has been uploaded
  • Finalized — employees whose attendance is locked
  • Remaining — uploaded but not yet finalized
% Employees FinalisedCircular progress chart showing the percentage of employees finalized vs. total. Target: 100%.
% Punches FinalisedCircular progress chart showing the percentage of individual punch records finalized.
View (magnifier icon)Click to drill into the Attendance Details page for that month.

Action Buttons

Below the Past Months grid, three action buttons are available:

ButtonAction
Refresh (circular arrow icon)Reloads the Past Months grid with latest data.
Finalize Attendance (lock icon)Opens the Finalize Attendance page to lock attendance for a selected month/year.
Upload 30 Day Attendance (upload icon)Opens the 30-day attendance upload page to import attendance from an Excel file.

Punch Manager Button

At the top of the page next to the "Past Months" heading, the Punch Manager button navigates to the biometric/mobile punch management interface (see Punch Manager section below).

Attendance Details (Drill-Down)

Clicking the magnifier icon on any month row opens the Attendance Details page for that month. This page has two tabs:

Attendance Details page showing October 2025 with Attendance By Jobs tab, Reverse Finalised and Delete Unfinalised buttons, and a grid of jobs with staff counts
Attendance Details — By Jobs tab for October 2025

Tab 1: Attendance By Jobs

Groups attendance by job (project/site). The grid shows:

ColumnDescription
Select (checkbox)Select one or more jobs for bulk actions.
Job CodeThe unique job identifier (e.g., OMNISVC-GH-34850).
JobJob name/description.
# StaffNumber of employees with attendance on this job for the month.
View (blue arrow)Opens a dialog showing individual attendance records for this job.
Delete (red trash)Deletes all unfinalized attendance for this job.

Attendance Records Dialog

Clicking the blue arrow button on a job row opens a dialog titled Attendance Details with the following information:

Attendance Details dialog showing individual punch records with Job Code, Job, Emp No, Name, Comments, Type, and other columns
Attendance Details dialog — individual daily records for a job
ColumnDescription
Job CodeJob identifier.
JobJob name.
Emp NoEmployee number.
NameEmployee full name.
CommentsSource reference (e.g., src:in=225881,out=225882 indicating punch IDs).
TypeAttendance type code: NR = Normal, OT = Overtime, HOT = Holiday Overtime, LV = Leave, LOP = Loss of Pay.
DateThe specific date of the record (dd-mm-yyyy).
Leave TypeIf the record is leave, which leave type applies.
HrsNumber of hours worked (e.g., 8, 3.633333).
StatusUnfinalised or Finalised.
Added ByUser who uploaded/created the record.
OnDate/time the record was created.

The dialog includes:

  • An Export button to download the records to Excel
  • Filter dropdowns for Job Code, Type, and Leave Type
  • A search box for quick filtering

Tab 2: Attendance By Staff

Groups attendance by employee, showing a monthly summary per person. This is the view to check before finalization.

Attendance By Staff tab showing employee list with columns for Month Days, Working Days, Holidays, Punch Days, Normal Hours, OT Hours, and finalization status
Attendance By Staff tab — monthly summary per employee
ColumnDescription
Emp NoEmployee number.
NameEmployee name.
Month DaysTotal calendar days in the month.
Working DaysNumber of working days (excluding holidays and weekends per configuration).
Hols.Number of holidays in the month.
Punch DaysDays for which punch records exist.
No Punch DaysWorking days without any attendance record — these may need investigation.
LOP DaysLoss of Pay days (absent without approved leave).
Normal Hrs.Total normal working hours.
OT Hrs.Total overtime hours (regular OT).
Hol. OT Hrs.Overtime hours worked on holidays.
Total Hrs.Sum of Normal + OT + Holiday OT hours.
StatusUnfinalised or Finalised.
Check OTLink to review overtime calculation details for the employee.

Action buttons at the bottom of this tab:

  • Delete Attendance (red) — deletes selected employees' unfinalized attendance
  • Reverse Finalised (yellow) — reverses finalization for selected employees (admin only)

Page-Level Actions

At the top of the Attendance Details page, two global action buttons are available:

  • Reverse Finalised (cyan button with lock icon) — reverses the finalization for all finalized records in this month. Use with caution.
  • Delete Unfinalised (red button with trash icon) — deletes all unfinalized attendance records for this month.
Caution: Reverse Finalised

Reversing finalization should only be done if errors are discovered after finalization and before payroll has been run for the month. Once payroll is processed using finalized attendance, reversing creates inconsistencies between attendance and payroll data.

Upload 30 Day Attendance

The Upload 30 Day Attendance feature is the primary method for getting attendance data into JobNext. It accepts an Excel file containing day-wise attendance records for employees across jobs.

How to Upload Attendance 0:44
Upload 30 Day Attendance page showing file upload area, Submit button, staff count summary, Uploaded Data grid with filter dropdowns, and action buttons
Upload 30 Day Attendance page

Step-by-Step: Upload Attendance

  1. Download the template: Click the Upload File Structure button (cyan) at the top of the page. This downloads an Excel template with the required column headers.
  2. Prepare your data: Fill in the Excel template with attendance data. The key columns are:
    ColumnDescriptionRequired
    MonthMonth number (1–12)Yes
    Year4-digit year (e.g., 2025)Yes
    Emp_NoEmployee number (must exist in Staff Directory)Yes
    Supervisor_Emp_NoSupervisor's employee numberNo
    Job_CodeJob code the employee worked onYes
    ATT_TypeAttendance type: NR (Normal), OT, HOT, LV, LOP, etc.Yes
    Day 1–31Hours worked on each day of the month (columns for day 1 through 31)Yes
  3. Upload the file: Drag and drop the Excel file onto the upload area (or click to browse). Click Submit.
  4. Review the summary: The info banner updates to show how many Staff and Lines were found in the upload.
  5. Review uploaded data: The Uploaded Data grid below shows all imported records. Use the filter dropdowns (Month, Year, Emp_No, Supervisor_Emp_No, Job_Code, ATT_Type) to inspect specific subsets.
  6. Process the upload: Click the Process Upload button (green, at the bottom) to validate and commit the uploaded data into the attendance tables. The system runs validation rules during this step.

Upload Page Controls

Button/ControlDescription
Upload File StructureDownloads the Excel template with the correct column headers.
SubmitImports the uploaded file into the staging area.
Delete (orange)Deletes selected rows from the uploaded data.
Delete All (red)Clears all uploaded data from the staging area.
Backup Data (teal)Exports the currently uploaded data as a backup before processing.
Process Upload (green)Validates and commits the uploaded data to attendance records.
Upload Validation Rules

During Process Upload, the system validates:

  • Employee number exists in Staff Directory and is active
  • Job code exists and is active
  • Employee is allocated to the specified job
  • No duplicate records for the same employee/job/day/type combination
  • Leave days do not exceed calendar days in the month
  • Attendance on a day does not conflict with approved leave requests

If validation errors are found, they are displayed as error messages. Fix the data and re-upload.

Punch Manager

The Punch Manager handles raw biometric or mobile-based punch-in/punch-out records. Punches are typically uploaded from external attendance devices (biometric scanners, mobile apps) and then converted into either attendance records or timesheet entries.

Punch Manager page showing Month, Year, and Business Unit filters, 8 KPI cards, action buttons for Fix All Punches, Copy To Timesheet, Copy To Attendance, and Upload Punches
Punch Manager — KPI dashboard and action buttons

Filters

  • Month (required) — select the calendar month
  • Year (required) — select the year
  • Business Unit (optional) — filter punches by business unit (e.g., Residential Construction, Commercial Construction, Facilities Management, etc.)
  • Click Search to load punch data

KPI Cards

Eight summary cards show the punch status at a glance:

KPIDescription
Employees with punchesNumber of unique employees who have at least one punch record.
Jobs with punchesNumber of unique jobs/sites with punch records.
Total punchesTotal number of individual in/out punch events.
Punches with photoPunches that include a photo (from mobile/face-recognition devices).
Pending → TimesheetPunches not yet copied to timesheet records.
Pending → AttendancePunches not yet copied to attendance records.
Emp–Job–Days needing fixPunch combinations with issues (e.g., unpaired punches, missing out-time).
Total paired hoursSum of hours from successfully paired in/out punches.

Action Buttons

ButtonAction
Fix All Punches (teal, checkmark)Attempts to auto-fix unpaired punches (e.g., match unmatched in/out records, estimate missing times).
Copy To Timesheet (green, calendar)Converts punch data into timesheet entries. Useful when timesheets are the primary tracking method.
Copy To Attendance (cyan, calendar)Converts punch data directly into attendance records. This bypasses the timesheet step.
Upload Punches (blue, at bottom)Upload raw punch data from an Excel file.

The punch data grid below the KPI cards shows individual punch records with a Status filter dropdown to view specific statuses (e.g., Pending, Processed, Error).

Punch Manager vs. Upload 30 Day Attendance

Punch Manager deals with raw in/out timestamps from devices and then converts them to attendance or timesheet. Upload 30 Day Attendance accepts pre-processed daily attendance (hours per day per job) directly. Use Punch Manager when you have biometric/mobile data; use 30 Day Upload when HR compiles attendance manually in Excel.

Finalize Attendance

Finalization is the process of locking attendance records for a given month so they can be used by payroll. Once finalized, the records cannot be edited (except through admin reversal).

Finalize Attendance page showing Month and Year selectors, Finalization Runs grid, info banner showing 4 staff ready, Unfinalized Attendance grid with Normal Hrs and Overtime columns, and validation tabs
Finalize Attendance page — review before locking

Step-by-Step: Finalize Attendance

  1. Navigate to HR > Attendance and click Finalize Attendance.
  2. Select the Month and Year from the dropdowns.
  3. Click Search to load the data for that period.
  4. The page displays four key sections:
    • Finalization Runs — history of previous finalization runs for this month (if any)
    • Info Banner — shows how many staff are ready to be finalized (e.g., "4 Staff ready to be finalised")
    • Unfinalized Attendance — grid of employees with their attendance summary
    • Validation Tabs — three tabs highlighting issues that need resolution
  5. Review the Unfinalized Attendance grid:
    ColumnDescription
    EmpNoEmployee number
    Employee NameFull name
    Normal HrsTotal normal working hours for the month
    OvertimeTotal overtime hours
    Leave DaysNumber of leave days recorded
  6. Check the Validation Tabs (see below) and resolve any issues.
  7. Once all issues are resolved, click Finalize to lock the attendance.

Validation Tabs

Before finalization, the system runs automatic validation checks. Results are displayed across three tabs:

TabWhat It ChecksAction Required
Mismatched Leaves Employees who have approved leave requests but no corresponding leave attendance record (or vice versa — attendance shows leave but no approved request exists). Either create the missing leave request, upload the missing leave attendance, or cancel the mismatched leave request.
No Attendance Active employees assigned to jobs for this month who have zero attendance records. These employees will be marked as absent/LOP if finalized as-is. Upload missing attendance or confirm the employee was indeed absent for the entire month.
Missing Attendance Employees with attendance records on some working days but not all. The missing days may indicate gaps in data capture. Upload the missing days' attendance or mark the gaps as leave/LOP.
Critical: Finalization is Irreversible (Standard Users)

Once attendance is finalized, standard users cannot modify it. Only administrators can use the Reverse Finalised function to unlock records — and this should only be done before payroll is processed. Always verify the Unfinalized Attendance grid and resolve all validation tab issues before clicking Finalize.

What Happens During Finalization

When you finalize attendance, the system:

  1. Validates all uploaded attendance against business rules (leave conflicts, job allocations, attendance types).
  2. Calculates hours: splits each employee's total hours into Normal Hours, Regular Overtime, and Holiday Overtime based on configured rules (normal hours per day, max OT, rounding rules, etc.).
  3. Identifies holidays within the period based on the company holiday calendar.
  4. Freezes records into the finalized attendance tables, making them immutable.
  5. Auto-generates leave requests if attendance includes leave days that don't have matching leave requests (depending on configuration).
  6. Marks LOP (Loss of Pay) for days where the employee has no attendance and no approved leave.

Attendance Types

JobNext uses the following attendance type codes throughout the system:

CodeTypeDescription
NRNormalRegular working hours within the standard shift.
OTOvertimeHours beyond the normal shift threshold (configured per company).
HOTHoliday OvertimeHours worked on configured holidays. Typically attracts a higher OT multiplier.
LVLeaveApproved leave day. Links to the leave type (Annual, Sick, etc.).
LOPLoss of PayAbsent without approved leave. Salary is deducted for LOP days.
HDHolidayCompany-designated holiday. No work required.
WOWeekly OffConfigured weekly rest day (e.g., Friday in some regions).

Common Workflows

Workflow 1: Monthly Attendance from Excel

  1. At month-end, site supervisors prepare an Excel file with each employee's daily hours per job.
  2. HR navigates to HR > Attendance > Upload 30 Day Attendance.
  3. Downloads the template via Upload File Structure, fills it in, and uploads.
  4. Clicks Submit, reviews the uploaded data, then clicks Process Upload.
  5. Reviews the Past Months dashboard to verify "Uploaded" counts match expectations.
  6. Clicks into the month to review via Attendance By Staff tab.
  7. Navigates to Finalize Attendance, selects the month/year, reviews validation tabs, and finalizes.
  8. Proceeds to Payroll to run salary calculations.

Workflow 2: Biometric Punches to Attendance

  1. Biometric devices record employee in/out punches daily.
  2. HR uploads the punch data via Punch Manager > Upload Punches.
  3. Reviews the KPI cards — checks "Emp–Job–Days needing fix" for unpaired punches.
  4. Clicks Fix All Punches to auto-resolve pairing issues.
  5. Clicks Copy To Attendance to convert paired punches into attendance records.
  6. Proceeds to finalization as in Workflow 1 above.

Workflow 3: Timesheet to Attendance Conversion

  1. Employees or supervisors fill in Timesheets (job-wise hours per day).
  2. From the Timesheet module, use Convert To Attendance to generate attendance records.
  3. The conversion splits hours into Normal, OT, and Holiday OT based on configured thresholds.
  4. Proceed to finalization as above.

Best Practices

  • Finalize attendance before running payroll — payroll cannot be processed without finalized attendance for the month.
  • Review validation tabs thoroughly before finalizing. Mismatched leaves, missing attendance, and no-attendance employees will affect payroll calculations.
  • Use the By Staff tab to verify each employee's total hours, overtime, and leave days match expectations.
  • Backup data before processing uploads, especially for large datasets.
  • Finalize by the payroll cut-off date to ensure timely salary processing.
  • Assign employees to correct jobs in the upload file — job-wise attendance drives project cost allocation in Finance.
  • Handle exceptions early — if an employee worked on multiple jobs in a single month, each job's hours must be recorded as a separate row in the upload file.
Troubleshooting: "No Staff ready to be finalised"

If the Finalize page shows zero staff ready, check that:

  • Attendance has been uploaded and Process Upload was clicked
  • The correct Month and Year are selected
  • Employee records exist in the Staff Directory and are in Active status
  • Employees are allocated to active jobs for the selected month

Frequently Asked Questions

Q: Can I edit attendance after finalization?

Standard users cannot. An administrator can use Reverse Finalised from the Attendance Details page to unlock records, but this should only be done before payroll is processed for that month.

Q: What is the difference between "Upload 30 Day Attendance" and "Punch Manager"?

Upload 30 Day Attendance imports pre-processed daily hours (you know how many hours each employee worked each day). Punch Manager handles raw in/out timestamps from biometric devices and converts them to attendance or timesheet records.

Q: Can the same employee have attendance on multiple jobs in one day?

Yes. Each row in the upload represents one employee on one job with one attendance type. An employee can have multiple rows for the same day if they worked on different jobs.

Q: What happens to employees with no attendance when I finalize?

They appear in the "No Attendance" validation tab. If you finalize without resolving this, those days will be treated as LOP (Loss of Pay) and salary will be deducted accordingly.

Q: How does attendance relate to leave?

When attendance is finalized, the system checks for approved leave requests. If leave is recorded in attendance but no leave request exists, JobNext can auto-generate a leave request (depending on configuration). Conversely, if a leave request exists but no leave attendance is recorded, this appears in the "Mismatched Leaves" tab.