FEATURE · Employee Attendance

हर staff member को mark करें. 9:15 तक पूरा din lock.

भारतीय school staff के लिए daily attendance screen — 9 statuses (Present, Absent, Leave, Half Day, Short Leave, Week Off, Holiday, On Duty, WFH), punch in/out, late-by-minutes और adjustment audit trail. Biometric, mobile या manual — हर entry payroll में cleanly जाती है.

BG PICCOZONE

आज भारतीय स्कूल staff attendance कैसे mark करते हैं

सुबह के 8:50 बजे हैं. School office में head clerk एक हरा hardbound staff register खोलती हैं, आज की date पर खुलते हैं और daily ritual शुरू होता है. PRT teachers पहले आती हैं — Sangeeta ma'am, present, 8:45. PGT teachers उसके बाद. TGT उसके बाद. PE teacher 9:05 पर एक tick के साथ sign करते हैं. Bus drivers, office assistants, lab technician, librarian और night-watchman — सब अलग-अलग, तीन अलग desks पर रखे तीन register में sign करते हैं. 9:30 तक principal दो बार पूछ चुकी हैं — कौन नहीं आया? — और head clerk के पास अभी भी जवाब नहीं है.

एक हफ्ते बाद वही head clerk उन registers को Employee Payroll run के लिए निकालती हैं. आधे rows की timings clear नहीं हैं, late marks inconsistent हैं, function day पर तीन teachers ने एक-दूसरे के लिए sign कर दिया, और एक पूरा page Tuesday को tea spill से illegible है. Accountant फिर भी salary तैयार करती हैं क्योंकि 1st की deadline नहीं रुकती. March में वही data EPFO ECR और ESI returns में reconcile करना पड़ता है — जो timing किसी ने reliably record नहीं की, वही timing अब office को invent करनी पड़ती है.

Kaam छोटा है. System भारी है. Daily Employee Attendance वो screen है जो हमने हरे register को एक Inkwelly screen से replace करने के लिए बनाई — जब school में biometric device है तो punch, और जब नहीं है तो manual entry, और Employee Payroll run जो वही numbers बिना re-keying पढ़ता है.

Inkwelly daily employee attendance screen 47 school staff members status pills, punch in punch out times, source badges aur date department filter bar ke saath
आज का staff एक नज़र में — हर row पर status, in-time, out-time, source और adjustment flags.

Daily Employee Attendance कैसे काम करती है

8:42 a.m. पर एक staff member gate के biometric device के सामने से गुज़रती हैं. Fingerprint या face match उनके employeeId को resolve करता है, punch second के timestamp के साथ record होता है, और school की daily-attendance screen पर एक row appear होती है — source: BIOMETRIC और firstPunchIn: 08:42:14 के साथ. 8:55 तक head clerk की screen show करती है — 47 में से 38 staff punch कर चुके हैं, बाकी 3 late list में हैं. कोई register नहीं खुलना है, कोई ink नहीं सूखना है.

जिन schools में biometric device नहीं है, वहाँ head clerk अपने browser पर 9:15 पर Mark Attendance open करती हैं, search box से कोई pending staff member चुनती हैं, status PRESENT set करती हैं, first punch in के लिए 08:50 type करती हैं और save करती हैं. वही screen LEAVE accept करती है (और auto-link हो जाता है file पर पड़ी leave application से), HALF_DAY के साथ FIRST_HALF या SECOND_HALF, 30-minute medical break के लिए SHORT_LEAVE, second-Saturday rotation के लिए WEEK_OFF, और घर से Class 10 की answer sheets correct करने वाली math teacher के लिए WFH. हर save record करता है — किसने mark किया (recordedById), किस surface से (web से source: MANUAL, Inkwelly app से MOBILE), और exact timestamp.

अगर कोई teacher 9:18 पर पहुँचती हैं — school cutoff के 3 minutes बाद — screen automatically isLateMarked flag turn on करती है और lateByMinutes: 3 calculate करती है. अगर वो lunchtime पर doctor visit के लिए जाती हैं और 2:00 पर वापस आती हैं, office assistant row को adjust करती हैं, adjustmentReason में 'doctor's appointment' type करती हैं और screen isAdjusted: true set कर देती है — एक permanent audit entry के साथ जो original punch बनाम नया punch दोनों दिखाती है. कुछ भी invisible नहीं है — Employee Payroll accountant दोनों states देखती हैं monthly cycle चलाते वक्त.

उस एक save से biometric device का data, office की manual entries, principal की mobile entries, और WFH approvals सब merge हो कर एक row per employee per day बनती हैं. वो row employee profiles, Employee Payroll hours, EPFO ECR, ESI challan, gratuity calculation और school के अपने attendance-bonus rules — सबको feed करती है.

हर save पर क्या capture होता है

  • Status — PRESENT, ABSENT, LEAVE, HALF_DAY, SHORT_LEAVE, WEEK_OFF, HOLIDAY, ON_DUTY या WFH में से एक (Inkwelly के AttendanceStatus enum से end-to-end match)
  • Source — BIOMETRIC, MOBILE, WEB या MANUAL — automatically उस device या surface से set होता है जिसने entry record की, override नहीं होता
  • First punch in और last punch out — पूरे ISO timestamps, सिर्फ hours नहीं — audit trail second तक precise
  • Total working minutes और effective work hours — punches से compute होते हैं, payroll run directly read करता है
  • Late marked flag with late-by-minutes — school की department time settings से derive होता है, free-text guess नहीं
  • Half-day flag with FIRST_HALF या SECOND_HALF — salary slip पर half-day deduction और leave-balance accounting के लिए use होता है
  • Short-leave flag — 30-minute या 60-minute exception जो ज़्यादातर भारतीय schools informally allow करते हैं, अब first-class field है
  • Adjustment flag with adjustmentReason — जब भी office punch edit करती है तो required free-text, हर payroll-run report पर visible
  • Recorded-by user ID, recorded-at timestamp, updated-by user ID, updated-at timestamp — हर row पर पूरा audit-log
  • Linked leave application — जब status LEAVE होता है तो row approved request का leaveApplicationId carry करती है, double-entry नहीं
  • Department — row staff member के current attendance department को pick करती है filtering और rollups के लिए
  • Date — default में आज, academic session में backdate हो सकती है, audit के साथ

पूरा marking flow देखें

BG PICCOZONE
Daily attendance dashboard — total records, present, absent, on-leave और late-arrival counts एक नज़र में
BG PICCOZONE
Mark Attendance dialog — staff member चुनें, status set करें, punch times, source और remarks enter करें
BG PICCOZONE
Bulk Mark page — हर staff member एक बार listed, one-tap status pills और एक Apply-to-all bar
BG PICCOZONE
Edit dialog — mandatory adjustment reason और permanent audit trail के साथ punch बदलें

9-status model जो भारतीय schools actually use करते हैं

ज़्यादातर school-ERP screens आपको Present और Absent देते हैं. भारतीय school staff के दिन में 9 होते हैं. WFH है उस math teacher के लिए जो board season में Class 10 की answer sheets घर से correct कर रही हैं. ON_DUTY है उस PE teacher के लिए जो Class 6 को Lucknow में inter-school sports tournament ले गए हैं. SHORT_LEAVE है उस head clerk के लिए जो 11:30 पर post office गई और 12:15 पर वापस आ गई. HALF_DAY with FIRST_HALF या SECOND_HALF — उस librarian के लिए जो PT meeting days पर सिर्फ lunch तक रुकती हैं. WEEK_OFF है second-Saturday और bus drivers के rotational shift के लिए.

Ye statuses Inkwelly के पूरे system के AttendanceStatus enum से match करते हैं — तो जो row office आज mark करती है वही row Employee Payroll अगले महीने 1 तारीख को पढ़ती है, वही row EPFO ECR quarter-end पर पढ़ती है, और वही row Payment of Gratuity Act 1972 के तहत gratuity calculation जिस दिन teacher retire होती हैं उस दिन पढ़ती है.

Status filter dropdown showing 9 employee attendance statuses — PRESENT, ABSENT, LEAVE, HALF_DAY, SHORT_LEAVE, WEEK_OFF, HOLIDAY, ON_DUTY, WFH
Bulk Mark Attendance page school ke staff members ek list mein, one-tap Present, Absent aur More dropdown 7 dusre statuses ke liye, plus Apply-to-all bar at top

पूरे school के लिए bulk mark, एक screen में

ज़्यादातर सुबह ज़्यादातर staff present होते हैं. Head clerk Bulk Mark Attendance open करती हैं, आज की date pick करती हैं, और हर staff member को एक single roll-number-style list में देखती हैं — उनका employee ID, attendance department और status pills की एक row के साथ. वो Apply to all → Present tap करती हैं और हर row एक frame में green हो जाती है. फिर वो सिर्फ absent rows बदलती हैं — usually दो या तीन — और Save All click करती हैं.

जब bus drivers का Tuesday week-off है, वो उन rows पर More dropdown tap करके WEEK_OFF pick करती हैं. जब principal Delhi में CBSE workshop के लिए travel कर रही हैं, वो उस row पर ON_DUTY pick करती हैं. पूरे school का दिन तीन से चार minutes में lock हो जाता है — और BulkMarkAttendance API call per-row result record करता है, इसलिए कोई भी save जो fail हुआ (network blip, validation mismatch) उसका exact error backend से inline दिखाया जाता है, silenced नहीं किया जाता.

Punch in, punch out, working hours — payroll-ready

हर row carry करती है — firstPunchIn, lastPunchOut, totalWorkingMinutes और effectiveWorkHours. जिन schools में gate पर biometric device चलता है, वहाँ ये चारों fields खुद भर जाते हैं — device punches stream करता है और daily row end-of-day automatically compute हो जाती है. जो schools Inkwelly mobile app use करते हैं, वहाँ staff member की selfie-punch gate या staff room से वही shape produce करती है.

Monthly Employee Payroll चलाने वाली accountant per day सिर्फ effectiveWorkHours पढ़ती हैं. उन्हें register से hours copy नहीं करने पड़ते, daily rate से multiply नहीं करना पड़ता, calculator के साथ नहीं बैठना पड़ता. Half-day deduction, SHORT_LEAVE adjustment, late-by-minutes penalty (अगर school ने configure की है) और WFH days जो full pay count होते हैं — सब इन चार fields से flow करते हैं, बिना re-keying. जब Section 192 के तहत TDS calculate होती है और quarter-end पर Form 24Q file होता है, underlying hours second तक auditable होते हैं.

Single attendance row showing Sangeeta Verma punch in 08:42, punch out 16:35, total working 7.9 hours aur green Present pill, plus chhota Late tag with 12 minutes
Edit Attendance dialog with mandatory Adjustment Reason text area highlighted, plus chhota Adjusted badge appearing on affected row in table behind dialog

Adjustments first-class हैं — और हमेशा audit-logged

Real school days biometric device से perfectly match नहीं करते. Assembly की सुबह principal punch in करना भूल जाती हैं. Fresh chalk dust की वजह से math teacher का fingerprint register नहीं होता. Inter-school match से लौटते वक्त PE teacher को देर हो जाती है और gate पहले से बंद है. Schools पहले इन्हें month-end पर register overwrite करके fix करते थे — और हर audit trail process में खो जाता था.

Inkwelly का Edit dialog तब तक save block करता है जब तक adjustmentReason न भरी जाए. Save होने के बाद row isAdjusted: true carry करती है, original values publication history में preserve रहती हैं, और daily list पर एक छोटा Adjusted badge appear होता है. हर payroll-run report adjusted rows को separately flag करती है. तीन महीने बाद, जब EPFO inspector पूछता है कि principal का 12 March का punch क्यों edit हुआ, office एक click में जवाब देती है — 'mass assembly, no punch device available, head clerk Mrs. Sharma ने 11:42 a.m. पर adjust किया reason: HOD assembly absence' — और inspector आगे बढ़ जाता है.

Pehle har shaam pencil se register sign hota tha. Ab device ke saamne se nikla, mobile par ek baar dekha, salary slip 1st ko ekdam clean banti hai. Audit aata hai to bina dar ke files khol dete hain.

पाँच real staff days, एक screen

1. 8:42 की biometric सुबह (हर दिन). Staff gate पर device के सामने से निकलते हैं. 8:55 तक head clerk की daily-attendance screen 47 में से 38 punched दिखाती है, 3 late staff उनके late-by-minutes के साथ highlighted. कोई register नहीं खुलता. Principal वही view अपने office से अपने phone पर देखती हैं.

2. Post-lunch correction (वही दिन). Math teacher ने 8:30 पर punch किया लेकिन actually 8:00 से staff room में थीं — device ने उनका पहला attempt skip कर दिया. Head clerk उनकी row open करती हैं, adjustment reason में 'device ने morning punch skip किया, in by 8:00 verified by HOD' type करती हैं और save करती हैं. Original punch और नया punch दोनों audit log में रहते हैं — payroll corrected one पढ़ता है पर inspector दोनों देख सकते हैं.

3. CBSE workshop day (Wednesday). Principal Delhi में CBSE leadership workshop के लिए हैं. Head clerk Bulk Mark open करती हैं, principal की row tap करती हैं, More dropdown से ON_DUTY pick करती हैं और save करती हैं. अगले महीने 1 तारीख को salary slip ON_DUTY days को full-pay days दिखाती है, EPFO ECR उन्हें working days count करता है, और कोई leave deduction नहीं होती.

4. Substitute teacher (Friday). Regular Hindi teacher planned leave application पर हैं. Substitute walk in करती हैं, gate पर punch करती हैं. System उनका employeeId recognise करता है, उन्हें आज के लिए PRESENT mark करता है और rollup के लिए उनका department pull करता है — regular teacher की row LEAVE पर ही रहती है, leave-application link के साथ.

5. October chronic-late review. Head clerk इसी data से एक एक-महीने की report निकालती हैं. दो teachers महीने में 10 late marks cross कर जाते हैं. Principal उन्हें बुलाती हैं, हर दिन के exact lateByMinutes को refer करती हैं, और conversation numbers पर grounded होती है — opinion पर नहीं. December तक late count आधा हो जाता है.

इस screen से cover होने वाले common scenarios

  • Biometric-only schools — gate पर fingerprint या face device, हर entry source: BIOMETRIC के साथ आती है, screen एक read-only audit surface है
  • Hybrid schools — teaching staff के लिए biometric, night-watchman और gardeners के लिए manual, वही screen दोनों को handle करती है, हर row पर source badge दिखाता है कि कैसे आई
  • Mobile-only schools — हर staff member Inkwelly app से gate पर punch करता है, optional photo capture के साथ, automatically source: MOBILE mark होता है
  • Board-marking के समय WFH days — Class 10 और Class 12 internal-marking teachers घर से, official school approval audit-logged के साथ WFH mark होते हैं
  • Multi-shift drivers — morning और evening shifts वाले bus drivers के अलग punch-in / punch-out pairs total working minutes में count होते हैं
  • Annual function या sports day — Bulk Mark with Apply-to-all → ON_DUTY, फिर सिर्फ absent rows बदलें; तीन minutes में दिन lock
  • Academic session में backdated correction — head clerk तीन दिन पहले का missed punch fix करती हैं, audit दोनों timestamps दिखाता है
  • Substitute teacher engagements — substitute punch in करती हैं, audit log clearly recordedBy = substitute teacher दिखाता है, regular teacher की leave row untouched रहती है
  • Department-level rollups — attendance department से filter करें — सिर्फ science block या सिर्फ bus drivers, HOD daily check-ins के लिए useful
  • Linked leave applications — LEAVE pick करने पर file पर पड़ी approved leave से auto-link हो जाता है, कोई leave double-counted नहीं होती

अपने school के data पर Daily Employee Attendance देखें

Inkwelly demo school पर 20-minute walkthrough. अपना existing biometric device लाएँ — हम दिखाएँगे कि punches इस screen और Employee Payroll run में बिना re-keying कैसे stream होती हैं.

Biometric Attendance के बारे में पढ़ें

Limits, safety और small print

एक row per employee per day. Screen employeeId × date per single canonical row enforce करती है. Multiple punches उसी एक row पर firstPunchIn, lastPunchOut, totalPunches और totalWorkingMinutes में roll up हो जाते हैं. जो schools morning और evening shifts चलाते हैं (boarding hostels, residential Sainik schools), वो school level पर second slot enable कर सकते हैं — वही row दोनों pairs of timestamps carry करती है, दो records में split नहीं होती.

Default status PRESENT है, पर silently नहीं. जब किसी staff member का 9:30 तक न biometric punch है न manual entry, row explicitly not marked रहती है — silently PRESENT default नहीं होती. Head clerk को daily-attendance screen पर वो empty rows yellow flag के साथ मिलती हैं, और वो decide करती हैं — ABSENT mark करना है, LEAVE, या staff member को chase करना है. जो schools उल्टा default चाहते हैं, वो school-level setting flip कर सकते हैं.

Bulk Mark single-day है. Multiple dates पर bulk-mark intentionally यहाँ expose नहीं किया — पूरे महीने का past data backfill per-employee history से होता है, इस screen से नहीं. Pattern accidental mass overwrites of correct biometric data prevent करता है, जो payroll run पर सबसे expensive class of mistake है.

Holidays और week-offs read-only हैं. अगर date school calendar पर holiday है या staff member के department-week-off pattern में WEEK_OFF है, row auto-set हो जाती है और Save button disable हो जाता है. Head clerk Republic Day पर गलती से किसी को ABSENT mark नहीं कर सकतीं, और इसलिए EPFO ECR उसे working day नहीं count करता.

Adjustments deletes नहीं हैं. हर adjustment original values audit history में preserve रखता है. Edit dialog का Delete button अभी intentionally placeholder है — जिन schools को row remove करनी है वो Archive use करते हैं (जो audit trail रखता है). Hard-delete by design block है; staff attendance EPFO और ESI rule-books के तहत statutory data है, silently erase नहीं हो सकती.

हरे register को एक screen से replace करें — जिस पर principal trust करें

Inkwelly की daily mark screen 7 [Employee Attendance](/modules/employees-attendance) features में से एक है जिन पर भारतीय schools हर सुबह depend करते हैं. Demo book करें और अपने staff data पर देखें.

किस मॉड्यूल का हिस्सा

1 module

अक्सर पूछे गए सवाल

10 सवाल
क्या यह बिना biometric device के काम करता है?

हाँ. जिन schools में biometric device नहीं है वो इस screen को manual surface की तरह चलाते हैं — head clerk staff member pick करती हैं, status set करती हैं, punch-in time type करती हैं और save करती हैं. Source automatically MANUAL record होता है. जब school बाद में biometric device add करता है या Inkwelly mobile app rollout करता है, वही screen चलती रहती है — नई entries source BIOMETRIC या MOBILE के साथ आती हैं और workflow नहीं बदलता.

यह monthly payroll run से कैसे connect होता है?

Employee Payroll run इसी screen से `effectiveWorkHours`, half-day flag, SHORT_LEAVE flag, late-by-minutes और WFH/ON_DUTY status पढ़ता है — same row, no re-keying. Salary slips, EPFO ECR uploads, ESI Form 6 और Form 16 / Form 24Q quarterly returns सब इन fields से पीछे roll होते हैं. Adjusted rows हर payroll report में separately flagged होती हैं.

क्या principal अपने phone से attendance mark कर सकती हैं?

हाँ. Inkwelly mobile app वही Mark Attendance dialog expose करता है — same 9 statuses, same punch-in / punch-out fields, same audit log. Mobile entries source MOBILE के साथ आती हैं. Principal phone से WFH days, ON_DUTY engagements और adjustment reasons भी approve कर सकती हैं — typically inter-school events में जब वो travel कर रही होती हैं.

अगर biometric device एक दिन offline हो जाए तो क्या होगा?

Staff members आते रहते हैं और punches की absence detect होती है. Head clerk screen पर manual marking पर fallback करती हैं — same 9 statuses, same fields. जब device वापस online आता है, queued punches existing rows में sync हो जाते हैं — manual entries overwrite नहीं होती. Audit log दोनों surfaces दिखाता है — *'manually marked at 09:15, biometric punch arrived 11:30 from device queue'* — तो clear record रहता है कि दिन कैसे reconstructed हुआ.

क्या attendance backdate हो सकती है missed day के लिए?

हाँ — same academic session के अंदर. Head clerk कोई भी past school day pick करती हैं और उस date के लिए mark करती हैं. Backdated entries original date और actual save time दोनों के timestamp के साथ logged होती हैं ताकि principal correction trail देख सकें. Active academic session के बाहर marking blocked है, और कोई भी backdated entry जो already-processed payroll cycle को affect करती है, payroll dashboard पर एक EPFO/ESI re-run task flag करती है.

Saturdays, second Saturdays और school के annual function days का क्या?

हर attendance department अपना week-off pattern define करता है — ज़्यादातर CBSE/ICSE schools Mon–Fri + 1st/3rd/5th Saturday चलाते हैं, 2nd और 4th Saturday WEEK_OFF होते हैं. Bus drivers और security staff अक्सर 6-day rotation चलाते हैं. Screen automatically department का week-off pattern पढ़ती है — WEEK_OFF rows read-only होती हैं और head clerk staff member को उनके अपने week-off पर ABSENT mark नहीं कर सकतीं.

क्या staff biometric templates India में store होते हैं?

हाँ. सारा Inkwelly data, biometric templates और punch traces के साथ, Mumbai के servers पर hosted है और DPDP Act 2023 compliant है. Templates encrypted at rest हैं और Indian servers से बाहर नहीं जाते. Retention period default 10 साल है — EPFO record-keeping rule और Income Tax Act audit-trail rule (Section 44AA के तहत) दोनों satisfy करने के लिए — और per school configurable है.

क्या दो head clerks एक ही staff member की attendance mark और edit कर सकते हैं?

हाँ — दोनों के पास access है अगर उन्हें Inkwelly के Identity & Access Management के through Employee Attendance permission मिली है. हर save user ID record करता है; हर edit एक adjustment reason require करता है और audit log में preserve होता है. Most recent save वो है जो payroll में flow करता है, लेकिन पूरी history row के audit drawer पर visible है.

क्या screen multi-shift staff जैसे bus drivers और security guards को handle करती है?

हाँ. Drivers और night-watchmen typically अपने attendance department और custom shift pattern के साथ configure होते हैं. Screen morning और evening punches को one row per day में correctly summed `totalWorkingMinutes` के साथ roll up करती है, और WEEK_OFF pattern per department respect होता है — Tuesdays off drivers daily list पर ABSENT show नहीं होते.

अगर हमारा school छोटा है और registers ठीक चल रहे थे?

दो reasons schools eventually move करते हैं: payroll math और EPFO inspection. 12 staff members के साथ भी, half-day deductions, SHORT_LEAVE counting और late-by-minutes salary slip के लिए correctly track होने ज़रूरी हैं — और registers EPFO inspector के past-3-months attendance पीछे से ECR file से पढ़ने को survive नहीं करते. Inkwelly की daily mark screen 12 staff को 60 seconds में और 250 staff को 5 minutes से कम में handle करती है.

आपको ये भी पसंद आ सकता है

2 लेख

Inkwelly आपके स्कूल पर — खुद देखें

30 मिनट का डेमो। आपके मौजूदा ERP को आपके साथ खोलकर, कॉल पर ही आपका डेटा Inkwelly में लोड करते हैं। कॉल ख़त्म होते-होते एक तय तारीख़ का गो-लाइव प्लान आपके हाथ में।