# HR Settings

<p class="doc-lead">HR Settings configure global attendance, leave, and data-entry rules applied across the HRMS module. Update these before onboarding employees or enabling attendance features.</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/hrms-settings?id=overview">Overview</a>
<a href="#/hr/hrms-settings?id=quick-start">Quick Start</a>
</div>
</div>
<div class="doc-toc-section">
<span class="doc-toc-group-title">Settings reference</span>
<div class="doc-toc-links">
<a href="#/hr/hrms-settings?id=general">General</a>
<a href="#/hr/hrms-settings?id=data-entry-rules">Data Entry Rules</a>
<a href="#/hr/hrms-settings?id=attendance-rules">Attendance Rules</a>
<a href="#/hr/hrms-settings?id=leave-accrual">Leave Accrual</a>
</div>
</div>
<div class="doc-toc-section">
<span class="doc-toc-group-title">More</span>
<div class="doc-toc-links">
<a href="#/hr/hrms-settings?id=best-practices">Best Practices</a>
<a href="#/hr/hrms-settings?id=faq">FAQ</a>
<a href="#/hr/hrms-settings?id=related">Related</a>
</div>
</div>
</div>

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

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

HR Settings is a single configuration screen — not a list. All settings are on one form grouped into four sections: General, Data Entry Rules, Attendance Rules, and Leave Accrual.

<img src="hr/images/hr-settings.webp" alt="HR Settings" loading="lazy">

Go to <b>HRMS → Settings → HR Setting</b>.

<b>Form actions</b>

| **Action** | **Description** |
|------------|-----------------|
| Update | Save all changes. |
| Reset | Revert to last saved values. |
| Cancel | Close without saving. |

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

<h2 id="quick-start">Quick Start — Configure HR Settings</h2>

<h3>1. Navigate</h3>
Go to <b>HRMS → Settings → HR Setting</b>.

<h3>2. Set general options</h3>
<ul>
<li>Select <b>Weekly Off Days</b> and <b>Week Starts On</b>.</li>
<li>Set <b>Attendance Start Date</b> — the date from which attendance tracking begins.</li>
<li>Enable <b>Enable Project-based Attendance</b> or <b>Enable Category-based Attendance</b> if needed.</li>
</ul>

<h3>3. Configure data entry rules</h3>
Select which employee fields are mandatory during onboarding.

<h3>4. Set attendance rules</h3>
Configure grace periods, minimum overtime minutes, leave marking, and break entry.

<h3>5. Set leave accrual</h3>
Choose monthly vs upfront annual accrual, leave-credit prorata day basis (if monthly), and max advance days.

<h3>6. Save</h3>
Click <b>Update</b>.

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

<h2 id="general">General</h2>

| **Setting** | **Description** | **Usage** |
|-------------|-----------------|-----------|
| Weekly Off Days | Multi-select: Monday through Sunday. | Days excluded from working-day calculations in attendance reports. |
| Week Starts On | Monday through Sunday. | Defines the first day of the week for weekly attendance reports. |
| Attendance Start Date * | Date. | Attendance tracking begins from this date. Records before this date are ignored. |
| Enable Project-based Attendance | Checkbox. Hidden without project module access. | Shows the Project column on attendance entry screens and enables the <a href="#/hr/reports/project-wise-attendance-report">Project Wise Attendance Report</a>. |
| Enable Category-based Attendance | Checkbox. | Shows the Category column on attendance entry screens. Requires <a href="#/hr/attendance-category">Attendance Category</a> master data. |

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

<h2 id="data-entry-rules">Data Entry Rules</h2>

| **Setting** | **Description** | **Usage** |
|-------------|-----------------|-----------|
| Employee mandatory fields | Multi-select from: First Name, Last Name, Primary Phone, Primary Email, Gender, Date of Birth, Shift, Time Slot, Department, Employee Group, Job Title, Nationality, Passport Number, Passport Expiry, Civil ID, Civil ID Expiry, Visa Number, Visa Expiry, Address. | Selected fields become required when creating or editing employees. Enforces data completeness during onboarding. |

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

<h2 id="attendance-rules">Attendance Rules</h2>

| **Setting** | **Description** | **Usage** |
|-------------|-----------------|-----------|
| Duration-based attendance grace | Checkbox. Default OFF. | Controls how grace is applied when computing attendance status on **Generate**. <br><b>OFF (boundary-based):</b> the employee must be present within the shift window; grace is measured against the shift start/end times using the two fields below. <br><b>ON (duration-based):</b> the shift is treated purely as a required number of working hours. The employee can work any in/out window and is marked Present as long as the total hours worked fall short by no more than the Short Worked Duration grace below. |
| Grace Period for Late Check-in (minutes) | Number. Shown only when Duration-based attendance grace is OFF. | Minutes an employee may check in after the shift start time and still be counted as present. Also used by the <a href="#/hr/reports/late-checkin-early-checkout-report">Late Checkin Early Checkout Report</a>. |
| Grace Period for Early Checkout (minutes) | Number. Shown only when Duration-based attendance grace is OFF. | Minutes an employee may check out before the shift end time and still be counted as present. |
| Grace Period for Short Worked Duration (minutes) | Number. Shown only when Duration-based attendance grace is ON. | Minutes the total worked duration may fall short of the required shift duration and still be marked Present. Example: an 8-hour shift with 10 here — an employee working 7 h 55 m (any in/out window) is still Present; working less falls to Three Fourth / Half Day per the usual thresholds. |
| Minimum overtime minutes | Number. Default 0. | Regular overtime below this many minutes on a day is ignored in attendance reports and on the payslip. If overtime is at or above this value, the full amount is counted (not reduced). Leave 0 to count all overtime. Does not apply to holiday or weekend overtime, or to manual <a href="#/payroll/overtime-entry">Overtime Entry</a> vouchers. This is separate from late check-in / early checkout grace. |
| Allow direct leave marking (Without leave request) | Checkbox. | Allows marking leave directly on the attendance form without a formal <a href="#/hr/leave-request">Leave Request</a>. Use with caution — bypasses approval workflow. Also determines whether shortfall days appear as Leave variants instead of Absent variants. |
| Allow Break Time Entry | Checkbox. | Shows Break In Time and Break Out Time columns on attendance entry screens. |

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

<h2 id="leave-accrual">Leave Accrual</h2>

| **Setting** | **Description** | **Usage** |
|-------------|-----------------|-----------|
| Monthly Leave Accrual (OFF = Upfront Annual) | Checkbox. | When ON, leave days accrue monthly via Bulk Credit / Add Credit on <a href="#/hr/leave-allowance">Leave Allowance</a>. When OFF, full annual entitlement is credited upfront. |
| Leave Credit Prorata Day Basis | Select. Shown only when Monthly Leave Accrual is ON. Default: Calendar Days. | Divisor used when prorating leave credits for mid-period joining, termination, or Absent / unpaid (LOP). A full month with no Absent or unpaid days still receives the full monthly entitlement (e.g. 2.5). Options: <br><b>Calendar Days</b> — actual days in the credit period (28–31). <br><b>Fixed 30 / Fixed 31</b> — constant divisor. <br><b>Annual ÷ 365</b> — ≈ 30.42 days per month (365 ÷ 12). Example: join 10 Feb, 19 paid days → Calendar: 2.5 × 19 / 28 ≈ 1.70; Annual ÷ 365: 2.5 × 19 / 30.42 ≈ 1.56. |
| Max Advance Days | Number. Shown only when Monthly Leave Accrual is ON. | Maximum number of leave days an employee can take in advance of accrued balance. Leave empty for no cap. |

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

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

<ul>
<li>Set <b>Attendance Start Date</b> before generating attendance for the first time.</li>
<li>Configure mandatory employee fields before bulk employee onboarding.</li>
<li>Enable project-based or category-based attendance only if your organization uses those features — they add columns to every attendance screen.</li>
<li>Set grace periods to match your company's punctuality policy before running the Late Checkin report.</li>
<li>Set <b>Minimum overtime minutes</b> if checkout a few minutes after shift end should not count as paid OT (for example 20 or 30). This does not change Present/Absent status — only OT hours on reports and pay run.</li>
<li>Enable <b>Duration-based attendance grace</b> only when shifts represent a required number of hours (flexible in/out) rather than a fixed clock window; then set <b>Grace Period for Short Worked Duration</b> to your allowed shortfall.</li>
<li>Choose upfront annual vs monthly accrual based on your leave policy — this affects how <a href="#/hr/leave-allowance">Leave Allowance</a> credits are applied.</li>
<li>When using monthly accrual, set <b>Leave Credit Prorata Day Basis</b> to match your policy (calendar month vs fixed 30/31 vs annual ÷ 365 ≈ 30.42) before posting joining/termination credits.</li>
</ul>

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

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

<b>Where do I configure departments, leave types, and holidays?</b><br>
Those are separate master data screens, not part of HR Settings. See the <b>Masters</b> section in the sidebar or the links below.

<b>What happens if I change Attendance Start Date after records exist?</b><br>
Existing attendance records are not deleted, but reports may exclude dates before the new start date depending on configuration.

<b>Does Allow direct leave marking skip leave approval?</b><br>
Yes. When enabled, HR can mark leave directly on the attendance form without creating a Leave Request. Disable this if your policy requires manager approval for all leave.

<b>What do grace periods for late check-in and early check-out affect?</b><br>
When <b>Duration-based attendance grace</b> is OFF, these minutes are the tolerance against the shift start/end times used when computing the attendance status on Generate (a check-in/out within grace is still Present). They are also subtracted before the <a href="#/hr/reports/late-checkin-early-checkout-report">Late Checkin / Early Checkout Report</a> flags a violation. They do <b>not</b> ignore small overtime — use <b>Minimum overtime minutes</b> for that.

<b>What does Minimum overtime minutes do?</b><br>
On each working day, if regular overtime is less than this value, OT hours are treated as 0 in attendance reports and on the pay run / payslip. If overtime meets or exceeds the value, the full OT is kept. Example: set to 25 — 20 minutes after shift end is ignored; 26 minutes is paid as 26 minutes (0.43 hours), not 1 minute. Holiday and weekend OT are not filtered. Manual overtime entries are not filtered. Leave 0 to count every extra minute.

<b>What is Duration-based attendance grace and when should I use it?</b><br>
Turn it ON when a shift is really a required number of working hours rather than a fixed clock window — for example, staff who may start early or late but must still complete the full shift duration. With it ON, the actual check-in/out times are ignored for the Present decision; only the total hours worked matter, and <b>Grace Period for Short Worked Duration</b> sets how many minutes short of the required duration is still counted as Present. With it OFF, the classic behavior applies: the employee must be present within the shift window and lateness/early checkout are judged by the two boundary grace fields.

<b>Example (8-hour shift, duration-based grace ON, short-duration grace 10 min).</b><br>
An employee who checks in at 05:00 and out at 12:55 (worked 7 h 55 m, i.e. 5 minutes short) is marked <b>Present</b>, even though they left long before shift end. Working only 7 hours would instead fall to Three Fourth / Half Day per the usual thresholds.

<b>When should I enable project-based attendance?</b><br>
Only when employees must tag a project on each attendance day — adds a Project column to daily attendance and related reports.

<b>What is the difference between upfront annual and monthly accrual?</b><br>
Upfront credits full entitlement at allowance start. Monthly accrual adds days each month via bulk credit — Max Advance Days limits how far ahead employees can borrow.

<b>What does Leave Credit Prorata Day Basis do?</b><br>
It affects mid-period joining, termination, and Absent / unpaid (LOP) prorata on leave credits. A full month with no Absent or unpaid days still gets the full monthly entitlement (e.g. 2.5). <b>Calendar Days</b> divides by the actual days in the period; <b>Annual ÷ 365</b> uses ≈ 30.42 per month. Example: join 10 Feb with 19 paid days and 2.5 monthly — Calendar ≈ 1.70; Annual ÷ 365 ≈ 1.56. Changing the setting does not recalculate already posted credits.

<b>Can I change mandatory employee fields after onboarding?</b><br>
Yes, but employees with incomplete profiles may be blocked from self-service actions until mandatory fields are filled.

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

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

<b>Master data (configured separately)</b>
<ul>
<li><a href="#/hr/department">Department</a></li>
<li><a href="#/hr/job-title">Job Title</a></li>
<li><a href="#/hr/employee-group">Employee Group</a></li>
<li><a href="#/hr/attendance-category">Attendance Category</a></li>
<li><a href="#/hr/leave-type">Leave Type</a></li>
<li><a href="#/hr/leave-allowance">Leave Allowance</a></li>
<li><a href="#/hr/reports/leave-allowance-credit-report">Leave Credit Report</a></li>
<li><a href="#/hr/holiday">Holiday</a></li>
<li><a href="#/hr/time-slot">Time Slot</a></li>
</ul>

<b>Workflow &amp; Approvals</b>
<ul>
<li><a href="#/hr/workflow-approval-stage">Workflow Approval Stage</a></li>
<li><a href="#/hr/workflow-approval-template">Workflow Approval Template</a></li>
</ul>
