Each department, its own clock. its own clock.
Set working hours, week-offs, short-leave thresholds and WFH policy per attendance department — Teaching at 8:30, Admin at 9:00, Support at 8:00 — and let approvals route automatically. One configuration drives every employee's daily attendance, leave eligibility and payroll-ready monthly report.

How most Indian schools manage staff attendance today
The principal walks into the office at 7:55 a.m. Three teachers are still signing the gate register. The Mathematics PGT comes in at 8:02 — fifteenth time this month. The PT teacher has been in school since 7:30 because the morning assembly needs setup. The accountant arrived at 9:05, which is on time for her department. The chemistry lab assistant is on a 9:00–6:00 shift, but the register has only one in-time column. Everyone signs the same line.
By the 5th of next month the head clerk is on his fourth Excel sheet. He has split staff into three groups by hand — Teaching, Admin, Support — and is colour-coding late-comings differently for each. The accountant has rejected two timesheets because the PT teacher's early arrival looked like a half-day. The Vice-Principal, who manages the Saturday rotation for senior staff, can't find anyone who knows which Saturdays are working in the second-half schedule. Last month's salary register was held back by four days. Two parents found out and complained.
The school doesn't have a department problem. It has a rules problem. Teaching staff need a 9:15 grace, week-off on Sunday and second Saturday. Admin staff need a 9:00 in-time, no grace, week-off on Sunday only. Support staff (drivers, peons, security) start at 8:00, get a half-day after 12:30, and work most Saturdays. One register cannot enforce all three. Inkwelly's attendance departments give each group its own rulebook — and let Employee Attendance compute the right verdict for every punch.

How attendance departments work
You start by creating a department. Code first — TEACH, ADMIN, SUPP, SECURITY, KITCHEN, TRANSPORT. Two to twenty characters, uppercase letters and digits, unique inside the school. Code is permanent — chosen once and used for every audit, payroll mapping and integration after that. Add a name (3–255 characters), a short name like Admin or Support, an optional description, a display colour and a display order. The department lives instantly — no save-and-wait.
Each department then carries its own settings. Time settings are where most schools spend the longest: in-time (9:00), late-coming threshold (9:15), out-time (17:00), half-day-enter-after (11:00), half-day-leave-before (14:00), full-day-absent-after (12:00), grace minutes (0–60), overtime tracking after a threshold and minimum working hours for full or half day. The system uses these to grade every punch automatically — present, late, half-day, on-leave or absent. Week-offs are configured per day-of-week with a dayType that handles every Sunday plus second and fourth Saturday cleanly — you don't write code, you tick boxes. Short-leave settings define when a short leave is auto-recognised (e.g., enters after 9:30 or leaves before 4:30), the maximum per month, what counts as a half-day, what counts as a full day, and whether approval is needed. WFH settings decide if the department can work from home at all, max days/month, max consecutive days, mandatory check-in window, advance-notice requirement and which weekdays WFH is allowed.
Once departments exist, employees get assigned to them via Department Assignments. The assignment carries a fromDate, optional toDate and an isPrimary flag — and the primary assignment's rule-set is what governs that employee's daily attendance from day one. Move a teacher from Teaching to Admin in March? The new department's rules apply automatically from March; the old assignment auto-closes the day before. Nothing manual.
What every department carries
- Department code (2–20 chars, uppercase alphanumeric) — unique per school, permanent identifier for audit and payroll
- Time settings — in-time, late-coming threshold, out-time, half-day enter/leave windows, grace minutes (0–60), overtime trigger and minimum working hours
- Week-off pattern with dayType (ALL, FIRST, SECOND, THIRD, FOURTH, LAST) — handles Sunday + 2nd & 4th Saturday without custom rules
- Short-leave rules — auto-detect by entry/exit time, monthly cap, conversion to half/full day, approval flag
- Work-from-home policy — allowed/disallowed, max days per month, max consecutive days, check-in requirement, advance-notice days
- Approval authorities — who approves leave, on-duty, short leave and WFH requests for this department, with multi-level routing
- Punch-window guard rails — punchNotAllowedBefore and punchNotAllowedAfter to ignore stray biometric reads at 5:30 a.m. or midnight
- Display order, colour code and short name — for clean filtering, dashboards and avatar badges across the product
- Active/Inactive status — deactivate to hide from new assignments while preserving every historical attendance record
From department list to per-department rules



Time settings that match the office calendar
Indian school staff don't share a clock. Teaching arrives at 8:30 with a 15-minute grace. Admin starts at 9:00 sharp. Support begins at 8:00 because the buses leave at 7:30. Inkwelly's department time settings carry every variation — in-time, late-coming time, out-time, half-day enter-after, half-day leave-before, full-day absent-after, grace period (0–60 minutes), overtime threshold and minimum working hours for full or half day. The system uses these to grade every biometric or RFID punch automatically. No principal logs in to mark anyone late.


Week-offs that follow the school calendar, not a calendar app
Most Indian schools run a Sunday plus second and fourth Saturday week-off for teaching staff — and many keep admin staff on Sunday-only. Some give support staff every alternate Saturday. Inkwelly stores week-offs per department with a dayType that recognises FIRST, SECOND, THIRD, FOURTH and LAST occurrences of any weekday. Tick once, valid forever. When the principal swaps to a new pattern next April, every downstream calculation — daily attendance, monthly payroll, late-coming counts — updates from the next day, no migration script.
Short-leave thresholds that catch reality, not just policy
A PRT who walks in at 9:32 isn't late — she's on a short leave. A PGT who leaves at 4:25 has used short leave too. Inkwelly's short-leave settings catch both: enter-after time, leave-before time, max short-leaves per month (typically 2–3), max duration in minutes, minimum gap between two short-leaves, count required to convert to a half-day, count to convert to a full-day, and approval requirement. The teacher's payslip ends up clean, the principal isn't chased to remember rules, and the office register is finally honest about what it always recorded.


Work-from-home that an Indian school can actually grant
Every school in India that gave teachers WFH during board exam evaluation, PTM follow-ups or election duty knows it works. The trick is making sure WFH doesn't become an unwritten privilege only the head clerk's friends use. Inkwelly's per-department WFH settings let you decide if WFH is allowed at all, the cap per month (e.g., 4 days), max consecutive days (e.g., 2), whether check-in is required, the grace minutes for that check-in, the advance-notice days for raising a request, and which weekdays it's allowed. The result: a written-down policy your auditor can read in 30 seconds — and a system that enforces it without anyone playing favourite.
“Pehle Saturday ka rotation har month confusion hota tha. Ab Teaching department mein 2nd aur 4th Saturday off ek baar tick kiya, baaki sab automatic. Salary 1st ko payroll ko jaata hai, koi exception list nahi.”
Where schools use departments today
1. The Sunday + 2nd Saturday split. Teaching staff get Sunday + 2nd & 4th Saturday off. Admin staff get only Sunday. Support staff get only Sunday and most second Saturdays. Three departments, three week-off patterns, one Inkwelly setup.
2. The 8:00 a.m. transport shift. Drivers and conductors arrive at 7:30 to fuel buses; they finish their assigned routes by 9:00 and return at 4:30. A separate TRANSPORT department captures their 8:00 in-time and 16:30 out-time without forcing the rest of the staff onto the same clock.
3. The board-exam season WFH grant. Evaluators of CBSE board copies need 5 working-from-home days in March. Create a BOARD-EVAL department with WFH allowed (max 5 days, no consecutive limit, check-in required at 10:00) and assign evaluators to it for March only. Auto-revert in April.
4. The non-teaching grace difference. Admin staff get no grace because attendance is computed against the office's 9:00 schedule. Teaching staff get 15 minutes because morning assembly setup is unpredictable. Two departments, two grace settings, no manual override needed.
5. The kitchen/hostel staff shift. Boarding schools have a kitchen department starting at 5:30 a.m. and ending at 14:30, and a separate evening kitchen shift from 14:30 to 22:00. Each has its own punch window, half-day rule and overtime trigger — payroll computes salary correctly without the head clerk doing manual splits.
Common operations once departments exist
- Search and filter departments by name, code or active/inactive status
- Sort by display order, name, code, created date or updated date
- Edit name, short name, description, display order, colour and active status — code stays permanent for audit safety
- Manage approval authorities per department — assign multiple approvers with multi-level routing for leave, on-duty, short-leave and WFH
- Toggle active status — deactivated departments disappear from new assignment dropdowns but keep every history intact
- Force-delete with safety — system blocks deletion when active employee assignments or attendance records exist
- Set or update default time settings, week-off pattern, short-leave thresholds and WFH policy from one detail page
- View live employee count per department — primary assignments and secondary tracked separately
- See immediate impact in the Employee Attendance dashboard — daily punches re-graded the moment a setting changes
See departments configured for your school
20-minute walkthrough on a real Indian school's data — Teaching, Admin and Support set up live. No slide deck.
Limits, safety and small print
Department codes are permanent. Once you save TEACH, the system uses it for every payroll mapping, audit trail and integration export. The form even rejects edits to the code on the edit screen — a guard against the accidental rename that breaks salary records six months later. Choose codes that will outlive the people who created them.
Codes follow ^[A-Z0-9]{2,20}$. Lowercase, special characters and spaces are rejected at form-validation time. The constraint is intentional — it makes codes safe to use as folder names in exports, identifiers in Excel sheets and keys in third-party integrations.
Deletion is conditional. A department with active employee assignments returns DEPARTMENT_HAS_DEPENDENCIES (HTTP 409). A department with historical attendance records cannot be hard-deleted at all. Setting it inactive is the standard retirement path — old records stay queryable, new assignments can't pick the department, and the audit log keeps the original creation date.
Approval routing is per department. Approvers configured on TEACH apply only to leave, on-duty, short-leave and WFH requests by Teaching staff. Move a teacher to ADMIN and approvals automatically route to the Admin head from the next request — no need to re-route history.
Time settings re-grade prospectively. Change a department's late-coming threshold and only future days get re-graded against the new rule. Past days remain locked — Inkwelly never edits a closed payroll period silently.
The permission required to manage departments is emp_attendance:manage_departments — handed out via Identity & Access Management so a principal can give a senior accountant access without giving full admin.
Belongs to
1 moduleFrequently asked
7 questionsCan one school have separate Sunday-only and Sunday-plus-2nd-Saturday week-offs at the same time?
Yes — that's exactly the use case departments solve. Create one department for Teaching with Sunday plus 2nd & 4th Saturday, another for Admin with Sunday only, another for Support if their pattern differs. Each carries its own week-off rules and the daily attendance grader uses whichever rule applies to that employee's primary department.
What happens to an employee's old attendance when their department changes?
Nothing. Past attendance is locked against the rules of the department they were assigned to on each historical day. Inkwelly never silently re-grades closed periods. The new department's rules apply only from the new assignment's fromDate forward — managed automatically via the Department Assignments feature.
Can I change a department's code if I named it wrong?
No — codes are intentionally permanent. They anchor every payroll mapping, audit log and integration export. If you genuinely need a different label, edit the department's name and short name freely; the code stays untouched. If a code is wrong at the moment of creation, deactivate the department, create a new one with the correct code and re-assign employees.
Does department-level WFH policy override anything in the leave module?
No — leaves and WFH are separate request pipelines. WFH settings on a department only decide whether WFH is allowed for that group, the cap per month, consecutive days, advance-notice and check-in rules. Leaves continue to follow the leave-types you've configured — earned, casual, medical, maternity and any custom types — with the department's approval authorities deciding who signs off.
How does this interact with biometric and RFID punching?
Every punch — biometric, RFID or manual — is graded against the employee's primary department's time settings. The same machine can serve Teaching, Admin and Support at the same school; the system just routes each punch through the right rulebook. The punchNotAllowedBefore and punchNotAllowedAfter guards stop stray pre-school or post-midnight reads from polluting the daily attendance.
Can I deactivate a department mid-month without breaking salary?
Yes. Deactivating only removes a department from new-assignment dropdowns; it doesn't touch existing employee assignments or attendance records. To stop attendance flowing into a department from a specific date, end-date everyone's assignment instead — the department itself can stay alive while you migrate. After migration, deactivate it for cleanup.
Is the department a tax/payroll category — like the EPF group code?
No. The attendance department is a working-rule unit — it controls how punches turn into present/late/half-day. Statutory mapping (EPFO group, ESIC dispensary, professional tax slab) lives in the Employee Payroll module against each employee's salary structure. Departments and salary structures are deliberately decoupled — the same Teaching department can hold employees on different EPF/ESI groups without any conflict.
You might also like
3 readsSee Inkwelly on your school
30-minute demo. We open your current ERP with you and load your data into Inkwelly on the call. Dated go-live plan by the end of it.