<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Frappe_HRMS_-_Ch04_Shift_and_Attendance</id>
	<title>Frappe HRMS - Ch04 Shift and Attendance - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Frappe_HRMS_-_Ch04_Shift_and_Attendance"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Frappe_HRMS_-_Ch04_Shift_and_Attendance&amp;action=history"/>
	<updated>2026-06-05T11:03:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Frappe_HRMS_-_Ch04_Shift_and_Attendance&amp;diff=149&amp;oldid=prev</id>
		<title>Justinaquino: &quot;Add Frappe HRMS wiki — main page + 9 chapters with Philippine localization&quot;</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Frappe_HRMS_-_Ch04_Shift_and_Attendance&amp;diff=149&amp;oldid=prev"/>
		<updated>2026-03-06T12:53:52Z</updated>

		<summary type="html">&lt;p&gt;&amp;quot;Add Frappe HRMS wiki — main page + 9 chapters with Philippine localization&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Frappe HRMS – Chapter 4: Shift and Attendance =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#f8f9fa; border:1px solid #ddd; border-radius:4px; padding:10px 16px; margin-bottom:16px;&amp;quot;&amp;gt;&lt;br /&gt;
Part of the [[Frappe HRMS]] documentation series. &amp;amp;nbsp;|&amp;amp;nbsp; Upstream: [https://github.com/frappe/hrms github.com/frappe/hrms]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Shift and Attendance module handles shift definitions, schedule management, biometric check-in integration, auto-attendance processing, overtime, and all attendance-related reports.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1. Shift Type ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
Defines the timing rules for a shift: start/end times, grace periods for late entry and early exit, the minimum hours required for a full day, and auto-attendance rules for processing biometric check-in data.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
# Go to &amp;#039;&amp;#039;&amp;#039;HR → Shift &amp;amp; Attendance → Shift Type → New&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Enter &amp;#039;&amp;#039;&amp;#039;Shift Type Name&amp;#039;&amp;#039;&amp;#039; (e.g., Morning Shift, Night Shift, Mid Shift).&lt;br /&gt;
# Set:&lt;br /&gt;
#* &amp;#039;&amp;#039;&amp;#039;Start Time&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;End Time&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* &amp;#039;&amp;#039;&amp;#039;Allow check-in before shift start time (minutes)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* &amp;#039;&amp;#039;&amp;#039;Late Entry Grace Period (minutes)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* &amp;#039;&amp;#039;&amp;#039;Early Exit Grace Period (minutes)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* &amp;#039;&amp;#039;&amp;#039;Working Hours Calculation Based On&amp;#039;&amp;#039;&amp;#039;: First Check-in / Last Check-out, or Every Valid Check-in/out pair&lt;br /&gt;
#* &amp;#039;&amp;#039;&amp;#039;Minimum Hours for Full Day&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* &amp;#039;&amp;#039;&amp;#039;Minimum Hours for Half Day&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Enable &amp;#039;&amp;#039;&amp;#039;Auto Attendance&amp;#039;&amp;#039;&amp;#039; if using biometric integration:&lt;br /&gt;
#* Set &amp;#039;&amp;#039;&amp;#039;Process Attendance After&amp;#039;&amp;#039;&amp;#039; (the daily cutoff time for processing)&lt;br /&gt;
#* Configure absent marking&lt;br /&gt;
# Save.&lt;br /&gt;
&lt;br /&gt;
=== Note ===&lt;br /&gt;
Shift Type drives all automatic attendance decisions. Incorrectly configured grace periods or cutoff times directly affect attendance accuracy and payroll.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 2. Shift Schedule ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
A recurring shift pattern (e.g., Mon–Fri Morning Shift, Alternating Day/Night) that can be auto-assigned to employees, eliminating the need for manual daily shift assignments.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
# Go to &amp;#039;&amp;#039;&amp;#039;HR → Shift &amp;amp; Attendance → Shift Schedule → New&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Enter Schedule Name.&lt;br /&gt;
# Define the recurring pattern: which days of the week map to which Shift Type.&lt;br /&gt;
# Save.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 3. Shift Schedule Assignment ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
Assigns a Shift Schedule to a specific employee for a date range. The system automatically creates &amp;#039;&amp;#039;&amp;#039;Shift Assignment&amp;#039;&amp;#039;&amp;#039; records for each working day covered by the schedule.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
# Go to &amp;#039;&amp;#039;&amp;#039;HR → Shift &amp;amp; Attendance → Shift Schedule Assignment → New&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Select &amp;#039;&amp;#039;&amp;#039;Employee&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Shift Schedule&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Set &amp;#039;&amp;#039;&amp;#039;Start Date&amp;#039;&amp;#039;&amp;#039; and optionally &amp;#039;&amp;#039;&amp;#039;End Date&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Save. The system generates individual Shift Assignments in the background (hourly scheduled job).&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 4. Shift Assignment ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
An individual record linking one employee to one Shift Type for a specific date. Created manually for one-off changes or in bulk via Shift Assignment Tool, or automatically from a Shift Schedule Assignment.&lt;br /&gt;
&lt;br /&gt;
=== Steps (Manual) ===&lt;br /&gt;
# Go to &amp;#039;&amp;#039;&amp;#039;HR → Shift &amp;amp; Attendance → Shift Assignment → New&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Select &amp;#039;&amp;#039;&amp;#039;Employee&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Shift Type&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;Date&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Save and submit.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 5. Shift Assignment Tool ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
Bulk shift assignment utility. Assigns or replaces shift assignments for multiple employees across a date range in a single operation.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
# Go to &amp;#039;&amp;#039;&amp;#039;HR → Shift &amp;amp; Attendance → Shift Assignment Tool&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Set &amp;#039;&amp;#039;&amp;#039;Date Range&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Shift Type&amp;#039;&amp;#039;&amp;#039;, and filters (Department, Employee list).&lt;br /&gt;
# Preview affected employees.&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;Assign Shift&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 6. Shift Request ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
Allows an employee to request a change to their assigned shift (e.g., swap shifts with a colleague or request a different shift for a specific date). Requires manager approval.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
# Employee goes to &amp;#039;&amp;#039;&amp;#039;HR → Shift &amp;amp; Attendance → Shift Request → New&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Selects &amp;#039;&amp;#039;&amp;#039;Shift Type&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Date Range&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Submits for approval.&lt;br /&gt;
# Manager approves or rejects the request.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 7. Employee Checkin ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
Stores raw check-in and check-out events per employee. Records can be imported from biometric devices (via API or CSV upload) or entered manually. The Shift Type&amp;#039;s auto-attendance job processes these into &amp;#039;&amp;#039;&amp;#039;Attendance&amp;#039;&amp;#039;&amp;#039; records.&lt;br /&gt;
&lt;br /&gt;
=== Fields ===&lt;br /&gt;
* Employee&lt;br /&gt;
* Log Type: IN or OUT&lt;br /&gt;
* Time (datetime)&lt;br /&gt;
* Device ID (optional, for biometric source tracking)&lt;br /&gt;
* Location (if using mobile app GPS check-in)&lt;br /&gt;
&lt;br /&gt;
=== Integration ===&lt;br /&gt;
* Biometric devices push data via the Frappe REST API or through the &amp;#039;&amp;#039;&amp;#039;Upload Attendance&amp;#039;&amp;#039;&amp;#039; tool.&lt;br /&gt;
* The mobile PWA app captures GPS-tagged check-ins.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 8. Attendance ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
The definitive daily attendance record for each employee. Can be created manually, via the &amp;#039;&amp;#039;&amp;#039;Employee Attendance Tool&amp;#039;&amp;#039;&amp;#039; (bulk), or automatically by the Shift Type&amp;#039;s auto-attendance processor.&lt;br /&gt;
&lt;br /&gt;
=== Attendance Status Values ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| Present || Employee was present for the full shift&lt;br /&gt;
|-&lt;br /&gt;
| Absent || Employee did not attend and no approved leave exists&lt;br /&gt;
|-&lt;br /&gt;
| Half Day || Employee was present for half the shift minimum hours&lt;br /&gt;
|-&lt;br /&gt;
| On Leave || Approved leave covers this day (auto-set from Leave Application)&lt;br /&gt;
|-&lt;br /&gt;
| Work From Home || Present but working remotely&lt;br /&gt;
|-&lt;br /&gt;
| Holiday || Day is a holiday per the employee&amp;#039;s Holiday List&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Manual Entry ===&lt;br /&gt;
# Go to &amp;#039;&amp;#039;&amp;#039;HR → Shift &amp;amp; Attendance → Attendance → New&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Select Employee, Date, and Status.&lt;br /&gt;
# Link to a Shift Type if applicable.&lt;br /&gt;
# Save and submit.&lt;br /&gt;
&lt;br /&gt;
=== Bulk Tool ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Employee Attendance Tool&amp;#039;&amp;#039;&amp;#039;: Mark attendance for multiple employees at once for a given date.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Upload Attendance&amp;#039;&amp;#039;&amp;#039;: Import attendance from CSV file (for bulk historical data).&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 9. Attendance Request ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
Allows an employee to request a correction to their attendance record — for example, if they forgot to check in or worked from a different location. Requires manager approval.&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
# Go to &amp;#039;&amp;#039;&amp;#039;HR → Shift &amp;amp; Attendance → Attendance Request → New&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Select Employee, Reason, and Date Range.&lt;br /&gt;
# Specify the correct attendance status being requested.&lt;br /&gt;
# Submit for manager approval.&lt;br /&gt;
# On approval, the system updates the attendance record.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 10. Overtime Slip ==&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
Documents and approves overtime hours worked beyond the regular shift. Feeds into the payroll cycle via an &amp;#039;&amp;#039;&amp;#039;Overtime Salary Component&amp;#039;&amp;#039;&amp;#039; so overtime pay is included in the salary slip.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
* Overtime Type defined&lt;br /&gt;
* Overtime Salary Component linked&lt;br /&gt;
&lt;br /&gt;
=== Steps ===&lt;br /&gt;
# Go to &amp;#039;&amp;#039;&amp;#039;HR → Shift &amp;amp; Attendance → Overtime Slip → New&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Select Employee and date.&lt;br /&gt;
# Enter overtime start/end time.&lt;br /&gt;
# Link to &amp;#039;&amp;#039;&amp;#039;Overtime Type&amp;#039;&amp;#039;&amp;#039; (Regular OT, Holiday OT, Rest Day OT, etc.).&lt;br /&gt;
# Submit for manager approval.&lt;br /&gt;
# On approval, overtime is included in the next payroll run.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== 11. Roster (Shift Roster App) ==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Roster&amp;#039;&amp;#039;&amp;#039; is a separate Vue 3 + TypeScript single-page application accessible at &amp;lt;code&amp;gt;/hr&amp;lt;/code&amp;gt;. It provides a visual, calendar-based interface for managing shift assignments across a team.&lt;br /&gt;
&lt;br /&gt;
=== Access ===&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;http://[your-site]/hr&amp;lt;/code&amp;gt;&lt;br /&gt;
* Available to supervisors and HR staff with the appropriate role&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Month View&amp;#039;&amp;#039;&amp;#039;: Calendar grid showing each employee&amp;#039;s shift assignment per day. Click any cell to change the shift.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Home&amp;#039;&amp;#039;&amp;#039;: Summary of current month&amp;#039;s roster, pending shift requests, and alerts.&lt;br /&gt;
&lt;br /&gt;
=== Use Cases ===&lt;br /&gt;
* Visual bulk editing of monthly rosters&lt;br /&gt;
* Reviewing shift coverage gaps&lt;br /&gt;
* Approving or reassigning shifts for leave coverage&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Reports ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Monthly Attendance Sheet&amp;#039;&amp;#039;&amp;#039; — grid of attendance status per employee per day for a selected month&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Shift Attendance&amp;#039;&amp;#039;&amp;#039; — attendance breakdown by shift type, useful for operations analysis&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Employee Hours Utilization Based on Timesheets&amp;#039;&amp;#039;&amp;#039; — billable vs non-billable time analysis (requires Timesheets)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Employees Working on a Holiday&amp;#039;&amp;#039;&amp;#039; — flags employees who worked on designated holidays (for holiday pay computation)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Related Chapters ==&lt;br /&gt;
&lt;br /&gt;
* [[Frappe HRMS]] — main index&lt;br /&gt;
* [[Frappe HRMS - Ch06 Leaves]] — leave applications affect attendance records&lt;br /&gt;
* [[Frappe HRMS - Ch07 Payroll]] — attendance and overtime feed into salary slips&lt;br /&gt;
* [[Frappe HRMS - Ch09 Philippine Localization]] — holiday pay rules for Philippine holidays&lt;br /&gt;
&lt;br /&gt;
[[Category:ERPNext]]&lt;br /&gt;
[[Category:Frappe HR]]&lt;br /&gt;
[[Category:Human Resources]]&lt;br /&gt;
[[Category:Attendance]]&lt;br /&gt;
[[Category:Comfac]]&lt;/div&gt;</summary>
		<author><name>Justinaquino</name></author>
	</entry>
</feed>