1. Home
  2. Settings
  3. Settings (System)
  4. Attendance Settings

Attendance Settings

🕒 Attendance Settings

The Attendance Settings page defines the rules that turn raw biometric punches into a meaningful attendance record. Shift timings, grace periods, late-mark policy, default import column mappings, and per-employee biometric ID mappings all live here. Once configured, every Attendance import (and every manual punch correction) is evaluated against these rules to derive Late Minutes and the day’s status (Present / Half-day / Absent).

📍 Screen: Settings → Attendance Settings

⚙️ Permissions: Attendance Settings is its own permission module — separate from general Settings. A user needs Attendance Settings → Update to edit this page. Read-only viewers see the values but the Edit button is hidden.

📑 The Page Has Two Tabs

  1. Policy & Default Shift — the rule-book: shift policy and the default column mapping used when importing biometric files.
  2. Biometric Mapping — links each employee to their biometric / face-recognition device ID(s) so imports can match punches to people automatically.

🛡️ Tab 1 — Policy & Default Shift

This tab is split into two sections — a Default Shift block and an Import — Default Column Mapping block.

📌 Section 1 — Default Shift

FieldPurpose
Shift NameFriendly name for the default shift (e.g., “General Shift”, “9 to 6”).
Shift Start / Shift EndThe default working window (e.g., 09:30 → 18:30). Used as the baseline for Late calculations when no employee-specific shift is set.
Grace MinutesNumber of minutes after Shift Start before a punch counts as Late (e.g., 10 minutes — anyone punching by 09:40 is on time).
Half-Day ThresholdIf worked minutes fall below this threshold (e.g., < 4 hours 30 min), the day is marked Half-day instead of Present.
Full-Day ThresholdMinimum worked minutes required for the day to count as a full Present day.

📌 Section 2 — Import: Default Column Mapping

Biometric / face-recognition exports (ZKTeco, eSSL, etc.) come in different shapes. To save you from re-mapping columns on every import, you can lock in your default column names here. The Attendance import dialog will pre-fill these mappings and you only adjust them if a particular file is structured differently.

FieldPurpose
Biometric ID ColumnThe column name in your file that contains the device ID (e.g., “Emp Code”, “User ID”).
Date ColumnThe column carrying the punch date.
In-Time ColumnFirst-punch / clock-in time column.
Out-Time ColumnLast-punch / clock-out time column.
Status ColumnOptional — if your device file already carries a Present/Absent flag, name it here. (Note: DaaiSuite re-derives status from punch times anyway; the import file’s Status column is informational only.)

💡 Tip: Set the default column mapping once after your first successful import. From then on every monthly import becomes a one-click flow.


🆔 Tab 2 — Biometric Mapping

Biometric devices identify employees by a numeric / alphanumeric device ID (called variously Biometric ID, User ID, or Emp Code on different devices). Daai Business Suite identifies them by their internal Employee record. The Biometric Mapping tab links the two.

⚠️ Required for import. A punch row whose biometric ID is not mapped to any employee is shown as an “Unknown” row in the import preview and is skipped at commit time. To pick those rows up, add the missing mapping here and re-run the import.

Add a Mapping

  1. Open Settings → Attendance Settings → Biometric Mapping.
  2. Click Add Mapping.
  3. Pick the Employee from the dropdown.
  4. Enter the Biometric ID exactly as it appears in your device export.
  5. Optionally set the Vendor (e.g., ZKTeco, eSSL, Realtime). Useful when two devices issue overlapping IDs — vendor scopes the lookup so the same numeric ID belonging to two devices doesn’t collide.
  6. Click Save.

Existing Mapping Table

The tab shows a paginated table of all current mappings with columns: Employee, Biometric ID, Vendor, and Actions (Edit / Delete). Use search and filters to find a specific employee or vendor.

🔁 One employee, multiple IDs. A single employee can have more than one row here — useful when they punch on two devices (e.g., one in the office, one at the factory gate). Each row is matched independently during import.


🛠️ How the Settings Flow Into Other Modules

  • Attendance import — every row’s Late / Status is computed from these settings at commit time; the column mapping is the starting point and biometric mappings translate IDs to employees.
  • Salary calculation — Paid Days and Late deductions read from Attendance, which was derived from these settings.
  • Attendance × Leave Reconciliation — uses these settings to determine “Present” vs “Absent” days when comparing against approved leaves.

⚠️ Effective from next import

Changes apply only to new attendance commits. Days already imported are not retroactively re-evaluated. If you change the grace minutes mid-month and want the change applied to days already imported, re-import that period or correct rows manually.

📌 Tip — start conservative

If you’re configuring Attendance for the first time, start with a lenient grace period (10–15 min) and a generous half-day threshold. Tighten the policy after one full payroll cycle, once you’ve seen how your team’s punches actually look. Aggressive defaults on day one create a flood of disputed records.

🔗 Related

How can we help?