# Daily Attendance

<p class="doc-lead">Daily Attendance lets HR administrators mark, update, and import employee check-in and check-out times for a selected date. Use the Day Attendance Form for bulk entry, or view posted records in the read-only Attendance list.</p>

<div class="doc-toc">
<p class="doc-toc-title">On this page</p>
<div class="doc-toc-section">
<span class="doc-toc-group-title">Getting started</span>
<div class="doc-toc-links">
<a href="#/hr/daily-attendance?id=overview">Overview</a>
<a href="#/hr/daily-attendance?id=quick-start">Quick Start</a>
<a href="#/hr/daily-attendance?id=attendance-status-legend">Attendance Status Legend</a>
</div>
</div>
<div class="doc-toc-section">
<span class="doc-toc-group-title">Day Attendance Form</span>
<div class="doc-toc-links">
<a href="#/hr/daily-attendance?id=day-form-filters">Filters &amp; Toolbar</a>
<a href="#/hr/daily-attendance?id=day-form-columns">Grid Columns</a>
<a href="#/hr/daily-attendance?id=more-menu">More Menu &amp; Import</a>
<a href="#/hr/daily-attendance?id=project-splitup">Project Splitup</a>
</div>
</div>
<div class="doc-toc-section">
<span class="doc-toc-group-title">More</span>
<div class="doc-toc-links">
<a href="#/hr/daily-attendance?id=attendance-list">Attendance List (Read-only)</a>
<a href="#/hr/daily-attendance?id=best-practices">Best Practices</a>
<a href="#/hr/daily-attendance?id=faq">FAQ</a>
<a href="#/hr/daily-attendance?id=related">Related</a>
</div>
</div>
</div>

<hr class="doc-section-divider">

<h2 id="overview">Overview</h2>

Freespace HRMS provides two ways to work with attendance:

| **Screen** | **Purpose** |
|------------|-------------|
| **Day Attendance Form** | Bulk entry and update for all employees on a selected date. |
| **Attendance** (list/view) | Read-only view of posted attendance records. |

The Day Attendance Form is the primary screen for daily operations. Attendance data feeds payroll, compliance tracking, and attendance reports.

<img src="hr/images/attendance-screen.webp" alt="Day Attendance Form" loading="lazy">

<hr class="doc-section-divider">

<h2 id="quick-start">Quick Start — Mark Attendance for a Day</h2>

<h3>1. Navigate</h3>
Go to <b>HRMS → Daily Attendance</b> (Day Attendance Form).

<h3>2. Select date and filters</h3>
<ul>
<li>Choose the <b>Date</b>.</li>
<li>Optionally filter by <b>Head Of Employee</b> or <b>Department</b>.</li>
</ul>

<h3>3. Generate</h3>
Click <b>Generate</b> to load employees and their shift timings for the selected date.

<h3>4. Fill in times and status</h3>
<ul>
<li>Enter <b>In Time</b> and <b>Out Time</b> for each employee.</li>
<li>Set <b>Status</b> (Present, Absent, Leave, Holiday, etc.). See <a href="#/hr/daily-attendance?id=attendance-status-legend">Attendance Status Legend</a>.</li>
<li>If project-based attendance is enabled, assign a <b>Project</b>. If category-based attendance is enabled, select a <b>Category</b>.</li>
</ul>

<h3>5. Save</h3>
Click <b>Update</b> to save all changes.

<hr class="doc-section-divider">

<h2 id="attendance-status-legend">Attendance Status Legend</h2>

These status values appear on the Day Attendance Form, Employee Attendance screen, and attendance reports:

| **Status** | **Description** |
|------------|-----------------|
| Present | Employee was present for the full day. |
| Half Day Present + Leave | Half day worked, half day on leave. |
| Half Day Present + Absent | Half day worked, half day absent. |
| Leave / Unpaid Leave | Full day on leave (paid or unpaid). |
| HD Leave + HD Absent | Half day leave and half day absent. |
| Absent | Employee did not attend. |
| Holiday | Public or company holiday. |
| Overtime | Employee worked overtime. |
| Three Fourth Present + Leave | Three-quarters present, quarter on leave. |
| Quarter Present + Leave | Quarter present, three-quarters on leave. |
| Three Fourth Present + Absent | Three-quarters present, quarter absent. |
| Quarter Present + Absent | Quarter present, three-quarters absent. |

> Rows where salary is already posted for the period are locked — status and times cannot be changed (shown with a lock icon and tooltip: <b>Salary already posted - status locked</b>).

<hr class="doc-section-divider">

<h2 id="day-form-filters">Day Attendance Form — Filters &amp; Toolbar</h2>

<b>Filters</b>

| **Filter** | **Description** |
|------------|-----------------|
| Date | The attendance date to view or edit. |
| Head Of Employee | Filter employees by their reporting manager. |
| Department | Filter by department. |

<b>Toolbar actions</b>

| **Action** | **Description** |
|------------|-----------------|
| Generate | Load employees and shift timings for the selected date. |
| Update | Save all changes made on the grid. |

<hr class="doc-section-divider">

<h2 id="day-form-columns">Day Attendance Form — Grid Columns</h2>

| **Column** | **Description** |
|------------|-----------------|
| Emp Code | Employee code. |
| Name | Employee name. |
| Shift In Time | Scheduled shift start time. |
| Shift Out Time | Scheduled shift end time. |
| In Time | Actual check-in time. |
| Out Time | Actual check-out time. |
| Break In Time | Break start time. Shown when <b>Allow Break Time Entry</b> is enabled in HR Settings. |
| Break Out Time | Break end time. Shown when break entry is enabled. |
| Status | Daily attendance status. Use the header dropdown to bulk-set status for all rows. |
| Project | Project assignment. Shown when project-based attendance is enabled. |
| Project Task | Task within the selected project. Shown when project-based attendance is enabled and enabled on the row only after a project is selected. Optional. |
| Category | Attendance category (e.g. Onsite, Remote). Shown when category-based attendance is enabled. |
| Notes | Optional notes for the day. Shown when notes are visible. |

<hr class="doc-section-divider">

<h2 id="more-menu">More Menu &amp; CSV Import</h2>

<b>More menu (⋮)</b>

| **Action** | **Description** |
|------------|-----------------|
| Delete Attendance | Delete attendance records for a date range and selected employees. |
| Update Attendance Shift | Bulk-update shift in/out times for a date range and selected employees or department. |
| Show Notes / Hide Notes | Toggle the Notes column on the grid. |

<b>Delete Attendance modal</b>

| **Field** | **Description** |
|-----------|-----------------|
| From Date * | Start of the date range. |
| To Date * | End of the date range. |
| Select Employee to Delete Attendance | Employees whose attendance will be deleted. |

<b>Update Attendance Shift modal</b>

| **Field** | **Description** |
|-----------|-----------------|
| From Date * | Start of the date range. |
| To Date * | End of the date range. |
| Employee | Filter by specific employees. |
| Department | Filter by department. |
| Shift In Time | New shift start time to apply. |
| Shift Out Time | New shift end time to apply. |

<b>CSV import</b>

Upload a CSV file (max 2 MB) using the file picker and <b>Upload</b> button. Download the CSV template using the <b>CSV</b> link.

<hr class="doc-section-divider">

<h2 id="project-splitup">Project Splitup</h2>

When an employee works on multiple projects in the same day, use the project split-up button (plus/pencil icon) on the row to divide attendance time across projects.

<img src="hr/images/prjct-split-up.webp" alt="Project Splitup modal" loading="lazy">

| **Field** | **Description** |
|-----------|-----------------|
| Log Date | The attendance date (read-only). |
| Employee | Employee name (read-only). |
| Shift In Time / Shift Out Time | Shift timings (read-only). |
| In Time | Check-in time for this project segment. |
| Out Time | Check-out time for this project segment. |
| Project | Project for this time segment. |
| Project Task | Optional task within the segment's project. Enabled after a project is selected. |

Click <b>Save</b> to apply the split or <b>Cancel</b> to close without saving.

<hr class="doc-section-divider">

<h2 id="attendance-list">Attendance List (Read-only)</h2>

The <b>Attendance</b> list shows posted attendance records. This screen is read-only — use the Day Attendance Form to create or update attendance.

<b>List filters</b>

| **Filter** | **Description** |
|------------|-----------------|
| Id | Record ID. |
| Employee | Filter by employee. |
| Attendance range | Date range. |
| Created date | When the record was created. |

<b>List columns</b>

| **Column** | **Description** |
|------------|-----------------|
| Id | Record ID. |
| Employee | Employee name. |
| Attendance date | Date of the attendance record. |
| In time | Check-in time. |
| Out time | Check-out time. |
| Shift in time | Scheduled shift start. |
| Shift out time | Scheduled shift end. |
| Status | Attendance status. |

<b>View fields</b>

Employee, Date, Check in time, Check out time, Shift in time, Shift out time, Status.

<b>Row actions</b>

| **Action** | **Available when** |
|------------|-------------------|
| View | All records |

<hr class="doc-section-divider">

<h2 id="best-practices">Best Practices</h2>

<ul>
<li>Generate attendance for the date before editing — this loads shift timings automatically.</li>
<li>Use the header status dropdown to bulk-set status when most employees share the same status (e.g. Holiday).</li>
<li>Enable project-based or category-based attendance in <a href="#/hr/hrms-settings">HR Settings</a> before expecting those columns on the grid.</li>
<li>Import attendance via CSV for large teams or when migrating from another system.</li>
<li>Do not edit rows locked after salary posting — adjust through leave requests or payroll corrections instead.</li>
</ul>

<hr class="doc-section-divider">

<h2 id="faq">FAQ</h2>

<b>Why can't I change the status for some employees?</b><br>
Salary has already been posted for that period. Locked rows show a lock icon. Reverse or adjust through payroll, not attendance.

<b>What is the difference between Day Attendance Form and the Attendance list?</b><br>
The Day Attendance Form is for bulk entry and update. The Attendance list is read-only and shows individual posted records.

<b>How do I assign attendance to multiple projects in one day?</b><br>
Click the project split-up icon on the employee row and add time segments with different projects.

<b>Can I delete attendance for a date range?</b><br>
Yes. Use the more menu → <b>Delete Attendance</b>, select the date range and employees, then confirm.

<b>What does Generate Attendance do?</b><br>
Creates attendance rows for selected employees and dates with default status (often Absent or based on holidays/weekly off) and loads shift times from shift map.

<b>Why can't I post attendance before Attendance Start Date?</b><br>
HR Settings Attendance Start Date blocks earlier dates — adjust only if migrating historical data with administrator approval.

<b>How does weekly off work?</b><br>
Configured weekly off days in <a href="#/hr/hrms-settings">HR Settings</a> mark those dates as weekly off when attendance is generated.

<b>Can Field Sale App attendance appear here?</b><br>
Yes. Mobile attendance entry syncs to the same daily attendance records visible on the Day Attendance Form.

<b>What triggers the lock icon on a row?</b><br>
Payroll posted for that date — message: salary already posted. Cancel or reverse pay run per policy before editing attendance.

<hr class="doc-section-divider">

<h2 id="related">Related Topics</h2>

<ul>
<li><a href="#/hr/employee-attendance-screen">Employee Attendance</a> — month-wise attendance for one employee.</li>
<li><a href="#/hr/attendance-category">Attendance Category</a> — define categories like Onsite, Remote, Workshop.</li>
<li><a href="#/hr/hrms-settings">HR Settings</a> — enable project-based or category-based attendance.</li>
<li><a href="#/hr/reports/daily-attendance-report">Daily Attendance Report</a> — summary report for a selected date.</li>
</ul>
