OrangeHRM has introduced several enhancements to Roster-based Attendance Reports that make it easier for administrators to monitor punctuality and surface incomplete attendance records. These enhancements eliminate the need for manual filter configuration and provide minute-level granularity for analysis.
This article explains how to use the following four enhancements together:
- Early/Late Status, now displayed in reports without choosing the filters
- Early Duration and Late Duration as new Display Fields
- Early Duration (Minutes) and Late Duration (Minutes) as Selection Criteria
- Include Incomplete Punches as a Selection Criteria setting
These apply to attendance reports generated for employees managed under Roster shift schedules.
1. Early/Late Status ,Auto-Populated in Reports
Early/Late Status field is automatically populated in any generated attendance report whenever Roster shift information is available for the employee.
The status reflects the comparison between the actual punch in/out and the scheduled Roster shift:
- On Time — punch falls within the configured grace period.
- Early — punch in earlier than the scheduled shift start, or punch out earlier than the scheduled shift end.
- Late — punch in later than the scheduled shift start, or punch out later than the scheduled shift end.
No additional filter setup is required.
2. Early Duration and Late Duration as Display Fields
Two new display fields have been added to the report configuration screen:
- Early Duration (Minutes) — the number of minutes the employee was early relative to the scheduled shift time.
- Late Duration (Minutes) — the number of minutes the employee was late relative to the scheduled shift time.
3. Early Duration and Late Duration as Selection Criteria
The two duration fields are also available as Selection Criteria — letting you filter the report by exact minute thresholds. For example, "show me all employees who were late by more than 10 minutes during last month".
- Greater than (>)
- Less than (<)
- Equal to (=)
- Between (range)
To find employees who were late by more than 10 minutes, set the criterion to Late Duration (Minutes) > 10.
4. Include Incomplete Punches as a Selection Criteria Setting
A new Include Incomplete Punches option has been added to the selection criteria. By default, attendance reports exclude records that are missing a punch-in or a punch-out. With this option enabled, administrators can include those records — useful for compliance reviews and for identifying employees who frequently forget to clock out.
How to generate the Report
Tracking employee attendance against their scheduled shifts is crucial for workforce management. With the latest update, you can now generate detailed reports that not only show if an employee was late or early but also include the exact duration of that variance (e.g., "Late by 60 minutes").
This guide walks you through creating an Employee Scheduled Shift Duration Summary report using the new report builder, based on the OrangeHRM interface.
Step 1: Navigate to the OrangeHRM instance and From the main dashboard, go to Reports and Analytics > Reports.
Step 2: Locate and click on Employee Scheduled Shift Duration Summary. If you are creating a new custom report, click "Add" and select the relevant data group (Roster vs. Actual Work).
- Report Name: Give it a clear name, e.g., "Weekly Late Duration Summary - Austin Team".
- Accessible To: Select who can view this report.
Admin(Full access)Supervisor(Team-only data)Head of DepartmentESS(Employees see only their own data)
Click "Next" to continue.
Step 3: Select Display Fields
In the Display Fields section, choose the columns you want to appear in your report.
- Personal Section: Expand to include basic employee identifiers like
Employee Id,Employee Name, etc. - Roster vs. Actual Work Section (Critical): This is where the core data lives. Check the following essential fields:
DateShiftShift StatusShift Duration (No Breaks)Early/Late Status(Now indicates if the punch was early or late)Early Duration/Late Duration(New feature – shows the actual minutes)Punch In Time/Punch Out TimeWork Duration
Click "Next" to continue.
Note: The key enhancement here is the
Late Durationfield, which now displays specific minutes (e.g., 60 minutes) rather than just a "Late" flag.
Step 4: Define Selection Criteria
Use the Selection Criteria to filter which employees and shifts are included.
- Personal Details: Filter by specific employees (e.g.,
Employee Name). - Rosters vs. Actual Work: Set essential filters like:
Shift Group(e.g., Austin team)Date(e.g., "This Week")Shift Status
- Include Options:
- Choose "Current Employees Only" unless you need terminated staff.
- Check "Show Only Rows With Filter Values" and select
Shift Statusto exclude blank entries. - Tick
Shift Statusto ensure you only see employees who had a shift scheduled.
Click "Next" to continue.
Example scenario
"Rachel Perez was scheduled to log in as a shift was at seven, however, she punched at eight. Therefore, a late duration of one hour is recorded."
In your new report, instead of just seeing "Late" in the Early/Late Status column, you would see "60" in the Late Duration column. This allows managers to quantify tardiness accurately for payroll or performance reviews.
Step 5: Set Grouping & Aggregation
In the Grouping Fields section, you can summarize the data.
- Group By: Select
Employee Id. This will combine all shifts for each employee into a single row. - Aggregate Options: For the
Shift Duration (No Breaks)field, choose an aggregation:- Sum: Total scheduled hours for the period.
- Average: Average shift length.
- Min / Max: Shortest or longest shift.
This gives you a bird's-eye view of total scheduled hours per employee over a week or month.
Step 6: Use the table below as a guide to use the filters
| Field | Selection | Purpose |
|---|---|---|
| Include | Current Employees Only | Exclude terminated staff |
| Shift Status | (Type for hints – optional) | Filter by completed, upcoming, or missed shifts |
| Shift Group | (Type for hints – optional) | Limit to a specific team or location (e.g., "Austin") |
| Date | This Week | Choose a predefined or custom range |
| Employee Name | (Type for hints – optional) | Focus on one or more individuals |
Note: If you want to see only employees who have a scheduled shift (and ignore those with none), ensure you set a meaningful
Shift Status(e.g., "Scheduled" or "Completed").
Below the main filters, you can add conditions on aggregated results – for example, only show employees whose total scheduled hours exceed a certain value.
- Sum of Shift Duration (No Breaks) – you can set a Min and/or Max threshold (e.g., Min = 10 hours to filter out part‑time schedules).