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.
Navigate to HR > Attendance from the left sidebar to access the Attendance module.
Attendance Workflow Overview
The end-to-end attendance workflow follows these stages:
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.
| Column | Description |
|---|---|
| Status Badge | Red "Action needed" badge appears when there are unfinalized attendance records for the month. |
| Month-Year | The calendar month (e.g., Oct-2025, Sep-2025). |
| # of Sites | Number of job sites that have attendance data for this month. |
| # Employees | Shows four colour-coded badges:
|
| % Employees Finalised | Circular progress chart showing the percentage of employees finalized vs. total. Target: 100%. |
| % Punches Finalised | Circular 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:
| Button | Action |
|---|---|
| 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:
Tab 1: Attendance By Jobs
Groups attendance by job (project/site). The grid shows:
| Column | Description |
|---|---|
| Select (checkbox) | Select one or more jobs for bulk actions. |
| Job Code | The unique job identifier (e.g., OMNISVC-GH-34850). |
| Job | Job name/description. |
| # Staff | Number 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:
| Column | Description |
|---|---|
| Job Code | Job identifier. |
| Job | Job name. |
| Emp No | Employee number. |
| Name | Employee full name. |
| Comments | Source reference (e.g., src:in=225881,out=225882 indicating punch IDs). |
| Type | Attendance type code: NR = Normal, OT = Overtime, HOT = Holiday Overtime, LV = Leave, LOP = Loss of Pay. |
| Date | The specific date of the record (dd-mm-yyyy). |
| Leave Type | If the record is leave, which leave type applies. |
| Hrs | Number of hours worked (e.g., 8, 3.633333). |
| Status | Unfinalised or Finalised. |
| Added By | User who uploaded/created the record. |
| On | Date/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.
| Column | Description |
|---|---|
| Emp No | Employee number. |
| Name | Employee name. |
| Month Days | Total calendar days in the month. |
| Working Days | Number of working days (excluding holidays and weekends per configuration). |
| Hols. | Number of holidays in the month. |
| Punch Days | Days for which punch records exist. |
| No Punch Days | Working days without any attendance record — these may need investigation. |
| LOP Days | Loss 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. |
| Status | Unfinalised or Finalised. |
| Check OT | Link 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.
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.
Step-by-Step: Upload Attendance
- 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.
- Prepare your data: Fill in the Excel template with attendance data. The key columns are:
Column Description Required Month Month number (1–12) Yes Year 4-digit year (e.g., 2025) Yes Emp_No Employee number (must exist in Staff Directory) Yes Supervisor_Emp_No Supervisor's employee number No Job_Code Job code the employee worked on Yes ATT_Type Attendance type: NR (Normal), OT, HOT, LV, LOP, etc. Yes Day 1–31 Hours worked on each day of the month (columns for day 1 through 31) Yes - Upload the file: Drag and drop the Excel file onto the upload area (or click to browse). Click Submit.
- Review the summary: The info banner updates to show how many Staff and Lines were found in the upload.
- 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.
- 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/Control | Description |
|---|---|
| Upload File Structure | Downloads the Excel template with the correct column headers. |
| Submit | Imports 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. |
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.
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:
| KPI | Description |
|---|---|
| Employees with punches | Number of unique employees who have at least one punch record. |
| Jobs with punches | Number of unique jobs/sites with punch records. |
| Total punches | Total number of individual in/out punch events. |
| Punches with photo | Punches that include a photo (from mobile/face-recognition devices). |
| Pending → Timesheet | Punches not yet copied to timesheet records. |
| Pending → Attendance | Punches not yet copied to attendance records. |
| Emp–Job–Days needing fix | Punch combinations with issues (e.g., unpaired punches, missing out-time). |
| Total paired hours | Sum of hours from successfully paired in/out punches. |
Action Buttons
| Button | Action |
|---|---|
| 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 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).
Step-by-Step: Finalize Attendance
- Navigate to HR > Attendance and click Finalize Attendance.
- Select the Month and Year from the dropdowns.
- Click Search to load the data for that period.
- 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
- Review the Unfinalized Attendance grid:
Column Description EmpNo Employee number Employee Name Full name Normal Hrs Total normal working hours for the month Overtime Total overtime hours Leave Days Number of leave days recorded - Check the Validation Tabs (see below) and resolve any issues.
- 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:
| Tab | What It Checks | Action 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. |
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:
- Validates all uploaded attendance against business rules (leave conflicts, job allocations, attendance types).
- 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.).
- Identifies holidays within the period based on the company holiday calendar.
- Freezes records into the finalized attendance tables, making them immutable.
- Auto-generates leave requests if attendance includes leave days that don't have matching leave requests (depending on configuration).
- 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:
| Code | Type | Description |
|---|---|---|
| NR | Normal | Regular working hours within the standard shift. |
| OT | Overtime | Hours beyond the normal shift threshold (configured per company). |
| HOT | Holiday Overtime | Hours worked on configured holidays. Typically attracts a higher OT multiplier. |
| LV | Leave | Approved leave day. Links to the leave type (Annual, Sick, etc.). |
| LOP | Loss of Pay | Absent without approved leave. Salary is deducted for LOP days. |
| HD | Holiday | Company-designated holiday. No work required. |
| WO | Weekly Off | Configured weekly rest day (e.g., Friday in some regions). |
Common Workflows
Workflow 1: Monthly Attendance from Excel
- At month-end, site supervisors prepare an Excel file with each employee's daily hours per job.
- HR navigates to HR > Attendance > Upload 30 Day Attendance.
- Downloads the template via Upload File Structure, fills it in, and uploads.
- Clicks Submit, reviews the uploaded data, then clicks Process Upload.
- Reviews the Past Months dashboard to verify "Uploaded" counts match expectations.
- Clicks into the month to review via Attendance By Staff tab.
- Navigates to Finalize Attendance, selects the month/year, reviews validation tabs, and finalizes.
- Proceeds to Payroll to run salary calculations.
Workflow 2: Biometric Punches to Attendance
- Biometric devices record employee in/out punches daily.
- HR uploads the punch data via Punch Manager > Upload Punches.
- Reviews the KPI cards — checks "Emp–Job–Days needing fix" for unpaired punches.
- Clicks Fix All Punches to auto-resolve pairing issues.
- Clicks Copy To Attendance to convert paired punches into attendance records.
- Proceeds to finalization as in Workflow 1 above.
Workflow 3: Timesheet to Attendance Conversion
- Employees or supervisors fill in Timesheets (job-wise hours per day).
- From the Timesheet module, use Convert To Attendance to generate attendance records.
- The conversion splits hours into Normal, OT, and Holiday OT based on configured thresholds.
- 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.
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.