Attendance Tracking
Track employee check-ins and checkouts, manage attendance records, handle overtime, and understand the complete attendance lifecycle.
Attendance Records
The Attendance page shows all check-in and checkout records for your organization. Use the filters to narrow down records by date range, employee, branch, or status.
Filters
Use these filters at the top of the attendance page to find specific records:
| Filter | Type | Description |
|---|---|---|
| Date Range | Date Picker | Select a start and end date to view attendance within a specific period. |
| Employee | Select | Search for a specific employee by name or ID. |
| Branch | Dropdown | Filter attendance records by branch location. |
| Status | Dropdown | Filter by attendance status: Present, Late, Absent, Half-Day, On Leave. |
List Columns
| Column | Description |
|---|---|
| Employee | Employee name and ID with photo thumbnail. |
| Date | The calendar date of the attendance record. |
| Check-In | The time the employee checked in, with the method icon. |
| Check-Out | The time the employee checked out. Shows "—" if still checked in. |
| Status | The attendance status badge: Present, Late, Absent, Half-Day, or On Leave. |
| Work Hours | Total hours worked calculated from check-in to checkout. |
| Overtime | Extra hours beyond the scheduled shift end time (if overtime is enabled). |
| Method | How the check-in was recorded: Mobile GPS, Face Recognition, Desktop, ZKTeco, or Manual. |
| Actions | Edit or delete the attendance record. |
| Employee | Date | Check In | Check Out | Status |
|---|---|---|---|---|
| Ahmed M. | 2025-04-12 | 08:02 | 17:05 | Present |
| Sara A. | 2025-04-12 | 08:45 | 17:00 | Late |
| Khaled H. | 2025-04-12 | — | — | Absent |
| Mona I. | 2025-04-12 | 07:58 | 17:10 | Present |
Attendance Statuses
Each attendance record is assigned one of the following statuses based on the employee's check-in time and shift schedule:
| Status | Badge | Description |
|---|---|---|
| Present | ● Green | Employee checked in on time (within the grace period) and completed their shift. |
| Late | ● Amber | Employee checked in after the shift start time plus the grace period. Late minutes are calculated and may trigger automatic deductions. |
| Absent | ● Red | Employee did not check in at all during their scheduled shift. |
| Half-Day | ● Blue | Employee worked less than half of their scheduled hours. Can also be manually set by admin. |
| On Leave | ● Gray | Employee has an approved vacation or leave for this date. No check-in is expected. |
Manual Attendance Entry
Administrators can manually add attendance records when needed — for example, when an employee forgot to check in, had a device issue, or worked at a remote location without GPS.
| Field | Type | Required | Description |
|---|---|---|---|
| Employee | Select | ✅ | Select the employee for whom you are recording attendance. |
| Date | Date | ✅ | The date of the attendance record. |
| Check-In Time | Time | ✅ | The time the employee started work. |
| Check-Out Time | Time | ❌ | The time the employee finished work. Leave empty if the employee is still working. |
| Status | Select | ✅ | Select the attendance status: Present, Late, Half-Day, or Absent. |
| Notes | Text | ❌ | Optional notes explaining the manual entry (e.g. "Device malfunction", "Remote work"). |
Bulk Attendance Entry
When you need to add attendance records for multiple employees at once (e.g. a team event or off-site training), use the bulk attendance feature.
Select date and branch
Choose the date and optionally filter by branch to narrow down the employee list.
Check employees and set times
Select the employees who attended and set their check-in and checkout times. You can apply the same times to all or set individual times.
Submit all records
Click "Save All" to create attendance records for all selected employees at once.
Import Attendance
You can import attendance records from a CSV file. This is useful when migrating from another system or importing data from biometric devices that export CSV files.
Download the template
Download the CSV template from the import page. The template includes columns: Employee ID, Date, Check-In Time, Check-Out Time, Status.
Fill in the data
Open the CSV in Excel or Google Sheets and fill in your attendance data. Use the format YYYY-MM-DD for dates and HH:MM for times.
Upload and review
Upload the completed CSV. The system validates the data and shows a preview with any errors highlighted before importing.
Check-in Methods
AttendUX supports multiple check-in methods. Each method is tagged on the attendance record so you can see how each employee checked in:
| Method | Icon | Description |
|---|---|---|
| Mobile GPS | Employee checks in via the mobile app with GPS location verification. The app confirms they are within the branch geofence radius. | |
| Face Recognition | Employee checks in via the mobile app using face recognition. Requires a pre-captured face encoding in their profile. | |
| Desktop | Check-in from the web dashboard by an administrator. Used for office-based manual recording. | |
| ZKTeco Device | Attendance recorded via a ZKTeco biometric device (fingerprint, face, or card). Synced to AttendUX automatically or manually. | |
| Manual | Added manually by an administrator through the attendance form. Tagged so it's identifiable in reports. |
Automatic Checkout
Automatic Checkout ensures that employees who forget to check out are not left with open attendance records. The system automatically closes the record at a configured time.
How It Works
When automatic checkout is enabled in Settings, the system monitors open attendance records (checked in but not checked out) and closes them automatically:
- At shift end time — If the employee's shift ends at 17:00 and they haven't checked out by 17:00, the system records checkout at 17:00.
- After a configurable delay — You can set a buffer (e.g. 30 minutes after shift end) before auto-checkout triggers, allowing for natural overtime.
- Via scheduled task — A background process runs periodically to close stale records.
Single Punch Detection
Single punch detection identifies records where an employee checked in but never checked out (or vice versa). This helps administrators catch missed punches and take corrective action.
The system flags single-punch records in the attendance list and in the dedicated Single Punch Report. Administrators can then either add the missing checkout time manually, or the automatic checkout system will handle it at the configured time.
Overtime Detection
AttendUX can automatically detect and calculate overtime when employees work beyond their scheduled shift hours. Overtime settings are configured in the system Settings page.
Overtime Calculation
Overtime is calculated as the difference between the actual checkout time and the scheduled shift end time, minus any configured threshold:
| Setting | Description | Example |
|---|---|---|
| Enable Overtime | Master toggle to enable or disable overtime tracking across the system. | On / Off |
| Overtime Rate | The multiplier applied to the hourly rate for overtime hours (e.g. 1.5x means 50% extra). | 1.5x |
| Overtime Threshold | Minimum minutes beyond shift end before overtime starts counting. Prevents minor delays from counting as overtime. | 15 minutes |
Ahmed's shift ends at 17:00. He checks out at 19:30. The overtime threshold is 15 minutes and the rate is 1.5x. Overtime = 19:30 − 17:00 − 0:15 threshold = 2 hours 15 minutes. If his hourly rate is 50 EGP, overtime pay = 2.25 hours × 50 × 1.5 = 168.75 EGP.
Location Validation (GPS Geofencing)
When employees check in via the mobile app, the system validates their GPS location against the branch geofence. This ensures employees are physically present at the workplace.
Employee opens the app
The employee opens the AttendUX mobile app and taps "Check In". The app requests their current GPS coordinates.
System calculates distance
The server calculates the distance between the employee's GPS position and the branch center coordinates. It compares this to the branch's geofence radius.
Accept or reject
If the employee is within the geofence radius, check-in succeeds. If outside, the check-in is rejected with a message: "You are outside the allowed area".
Example: Employee Arrives Late
Scenario: What happens step-by-step when an employee arrives late
Shift starts
Fatima's Morning Shift starts at 9:00 AM with a 15-minute grace period. She is expected to check in by 9:15 AM at the latest to be marked "Present".
Employee arrives late
Fatima arrives at the office at 9:32 AM — 32 minutes after shift start and 17 minutes past the grace period.
Check-in via mobile app
Fatima opens the AttendUX app, taps Check In. The app verifies her face and GPS location (within geofence). Check-in is recorded at 9:32 AM.
System marks status as "Late"
The system compares 9:32 against the shift start (9:00) + grace period (15 min) = 9:15. Since 9:32 > 9:15, Fatima is marked as "Late" with 17 minutes of lateness.
Deduction applied (if configured)
If automatic late deduction is enabled in Settings, the system applies the configured deduction tier. For example: 15–30 min late = warning, 30–60 min late = 0.5 day deduction. Fatima's 17 minutes past grace falls in the first tier.