Skip to main content
Version: Next

Attendance management

The Attendance module provides enterprise-grade attendance tracking across your entire school. It covers daily marking, real-time statistics, intervention management, policy enforcement, and pattern analysis to help improve student attendance rates.


Operations → Attendance (segment: operations/attendance)

Sub-sectionPathDescription
Dashboardoperations/attendanceOverview and quick actions
Class Registeroperations/attendance/registerMark daily attendance
Historyoperations/attendance/historyView attendance records
Interventionsoperations/attendance/interventionsAt-risk student management
Reportsoperations/attendance/reportsAnalytics and reports

Attendance architecture

┌─────────────────────────────────────────────────────────────────────────┐
│ Attendance Management System │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ Class Register │ │
│ │ │ │
│ │ Teacher marks attendance → Drag & drop / Keyboard shortcuts │ │
│ │ Auto-save → Real-time sync → Parent notifications │ │
│ │ │ │
│ └────────────────────────────────┬──────────────────────────────────┘ │
│ │ │
│ ┌────────────────────┼────────────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────────┐ │
│ │ Statistics │ │ Interventions │ │ Raw Events │ │
│ │ │ │ │ │ │ │
│ │ Daily/Weekly/ │ │ Chronic absence │ │ Biometric scans │ │
│ │ Monthly rates │ │ Pattern alerts │ │ RFID/QR check-ins │ │
│ │ Trends & flags │ │ Action tracking │ │ App sign-ins │ │
│ │ │ │ │ │ │ │
│ └────────┬─────────┘ └────────┬─────────┘ └──────────┬───────────┘ │
│ │ │ │ │
│ └─────────────────────┼───────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Policy Engine │ │
│ │ │ │
│ │ Thresholds → Auto-notifications → Intervention triggers │ │
│ │ Rating categories → Compliance tracking │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Dashboard & Analytics │ │
│ │ │ │
│ │ School-wide rates • Grade breakdowns • Class comparisons │ │
│ │ At-risk alerts • Trend charts • Day-of-week patterns │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘

Part 1: Attendance statuses

The system supports five core attendance statuses.

Status definitions

StatusCodeDescriptionAffects rateHotkey
PresentpresentStudent attended✓ Positive1
AbsentabsentUnexcused absence✓ Negative2
LatelateArrived after start✓ Partial3
ExcusedexcusedDocumented absenceNeutral4
Half Dayhalf_dayPartial attendance✓ Partial5

Status visual indicators

StatusColorIconBadge style
PresentEmerald/green✓ Checkbg-emerald-50
AbsentRed✗ Xbg-red-50
LateAmber/yellowClockbg-amber-50
ExcusedBlueFile checkbg-blue-50
Half DayPurpleAlert trianglebg-purple-50

Part 2: Session types

Attendance can be tracked at different granularities.

Session typeDescriptionUse case
morningAM session (before lunch)Split-day tracking
afternoonPM session (after lunch)Split-day tracking
full_dayEntire school dayStandard daily attendance
periodIndividual class periodPer-subject attendance

Part 3: Marking methods

The system supports multiple ways to capture attendance.

MethodDescription
manualTeacher marks via UI
biometricFingerprint/face scan
rfidCard tap at reader
qrQR code scan
appMobile app check-in
importBulk CSV import

Part 4: Dashboard

The attendance dashboard provides school-wide visibility.

Dashboard metrics

MetricDescription
Today PresentStudents marked present today
Today AbsentStudents marked absent today
Today LateStudents arriving late today
Today ExcusedExcused absences today
Weekly RateAttendance % for current week
Weekly TrendUp/down/stable vs last week
Monthly RateAttendance % for current month
At-Risk StudentsStudents below threshold
Pending InterventionsOpen intervention cases

Attendance rate thresholds

RatingMinimum %Color indicator
Excellent95%+Emerald
Good90-94%Blue
Warning80-89%Amber
CriticalBelow 80%Red

Dashboard widgets

  1. Hero Stats — Today's attendance counts with trend indicators
  2. Rate Ring — Circular progress showing overall attendance rate
  3. Quick Actions — Take attendance, view reports, manage interventions
  4. Grade Level Breakdown — Attendance by grade with bar charts
  5. Class Comparison — Side-by-side class performance
  6. Day of Week Analysis — Pattern detection (e.g., "Mondays have 5% more absences")
  7. Recent Activity — Live feed of attendance marks and alerts
  8. At-Risk Students — Students requiring intervention

Quick actions

ActionDescription
Take AttendanceOpen class register
View ReportsGo to analytics
View At-RiskFilter students below threshold
Manage InterventionsOpen intervention list

Part 5: Class register

The class register is the primary interface for marking daily attendance.

Class register features

FeatureDescription
Drag and dropDrag students to status zones
Keyboard shortcutsQuick marking with 1-5 keys
Auto-saveChanges save every 30 seconds
Real-time syncMultiple users see live updates
Bulk markingMark multiple students at once
SearchFilter students by name
Grid/List viewToggle between card and table views
Fullscreen modeDistraction-free marking

Class register workflow

Select Class


Select Date (default: today)


Select Session Type


Students appear in register

├─── Drag student to status zone
│ or
├─── Click student → Use hotkey (1-5)
│ or
└─── Bulk select → Mark all


Changes auto-save


Statistics update in real-time

Marking individual students

Method 1: Drag and drop

  1. Find student card
  2. Drag to status drop zone
  3. Release to mark

Method 2: Click and hotkey

  1. Click student card (selected)
  2. Press hotkey:
    • 1 = Present
    • 2 = Absent
    • 3 = Late
    • 4 = Excused
    • 5 = Half Day

Method 3: Status selector

  1. Click student card
  2. Click status button in expanded view
  3. Optional: Add arrival time for late students
  4. Optional: Add notes

Bulk marking

  1. Select multiple students:
    • Click checkboxes, or
    • Ctrl + A to select all, or
    • Click and drag to select range
  2. Click Bulk Mark button
  3. Choose target status
  4. Optional: Add notes
  5. Confirm marking

Keyboard shortcuts reference

ShortcutAction
1Mark present
2Mark absent
3Mark late
4Mark excused
5Mark half day
/ Navigate students
SpaceToggle selection
Ctrl + ASelect all
EscapeClear selection
Ctrl + SForce save
NOpen notes
TSet arrival time

Status drop zones

The register displays drop zones for each status:

ZoneAcceptsVisual
PresentStudent cardsGreen border, check icon
AbsentStudent cardsRed border, X icon
LateStudent cardsAmber border, clock icon
ExcusedStudent cardsBlue border, file icon
Half DayStudent cardsPurple border, triangle icon

Quick stats bar

While marking, a stats bar shows real-time counts:

StatDescription
TotalStudents in class
PresentMarked present
AbsentMarked absent
LateMarked late
ExcusedMarked excused
UnmarkedNot yet marked
RateCurrent % present

Part 6: Attendance records

Each attendance record contains comprehensive data.

Record properties

FieldTypeDescription
idstringUnique identifier
tenantIdstringTenant association
schoolIdstringSchool association
studentIdstringStudent reference
classIdstringClass reference
academicYearIdstringAcademic year
termIdstringTerm reference
periodIdstringPeriod (if per-subject)
attendanceDatedateDate of attendance
sessionTypeenumMorning/afternoon/full day/period
attendanceStatusenumPresent/absent/late/excused/half day
markingMethodenumHow recorded
arrivalTimetimeActual arrival (if late)
departureTimetimeEarly departure time
isTardybooleanLate flag
minutesLatenumberMinutes after start
isExcusedbooleanExcused flag
excuseReasonstringReason for excuse
excuseDocumentUrlstringSupporting document
notesstringAdditional notes
verifiedBystringStaff who verified
verifiedAtdatetimeVerification timestamp
parentNotifiedAtdatetimeWhen parent notified
notificationSentViastringSMS/email/app
createdAtdatetimeRecord creation
updatedAtdatetimeLast update
createdBystringWho created
updatedBystringWho updated

Viewing attendance history

  1. Navigate to Attendance → History
  2. Use filters:
    • Date range
    • Class
    • Grade
    • Student
    • Status
    • Session type
  3. View records in data table
  4. Click record for details
  5. Export to CSV

History table columns

ColumnDescription
DateAttendance date
StudentStudent name
ClassClass name
StatusStatus badge
ArrivalTime if late
NotesAny notes
ActionsView/Edit/Delete

Part 7: Attendance statistics

Statistics are calculated and stored for reporting.

Statistics properties

FieldTypeDescription
idstringStats record ID
studentIdstringStudent reference
academicYearIdstringAcademic year
termIdstringTerm reference
periodTypeenumDaily/weekly/monthly/term/year
periodStartdatePeriod start
periodEnddatePeriod end
totalDaysnumberSchool days in period
presentDaysnumberDays present
absentDaysnumberDays absent
lateDaysnumberDays late
excusedDaysnumberExcused absences
unexcusedAbsencesnumberUnexcused count
attendanceRatenumber% attendance
tardyRatenumber% tardy
trendstringImproving/declining/stable
requiresInterventionbooleanBelow threshold
interventionReasonstringWhy intervention needed
currentPresentStreaknumberConsecutive present days
longestPresentStreaknumberBest streak
currentAbsentStreaknumberConsecutive absences
absencePatternDetectedbooleanPattern found
patternDescriptionstringPattern details

Period types

PeriodDescription
dailySingle day stats
weeklyWeek aggregation
monthlyMonth aggregation
termTerm aggregation
yearAnnual aggregation

Recalculating statistics

Statistics auto-recalculate, but can be manually triggered:

  1. Select student or class
  2. Click Recalculate Stats
  3. Choose period type
  4. System recomputes

Part 8: Interventions

Interventions track follow-up actions for attendance issues.

Intervention properties

FieldTypeDescription
idstringIntervention ID
studentIdstringStudent reference
schoolIdstringSchool reference
academicYearIdstringAcademic year
termIdstringTerm reference
reasonCodeenumWhy triggered
severityenumLow/medium/high
statusenumOpen/in progress/closed
triggerMetricstringWhat metric triggered
triggerValuenumberThreshold crossed
assignedTostringStaff assigned
dueDatedateAction deadline
actionsPlannedarrayPlanned actions
actionsTakenarrayCompleted actions
outcomestringResult of intervention
closedAtdatetimeWhen closed
closedBystringWho closed
notesstringNotes

Intervention reason codes

CodeDescription
chronic_absenceExtended pattern of absence
chronic_tardyPattern of lateness
sudden_dropSudden attendance decline
pattern_detectedDay-of-week or time pattern
manualManually created

Intervention severities

SeverityDescriptionColor
lowMonitor situationBlue
mediumActive follow-up neededAmber
highUrgent attention requiredRed

Intervention statuses

StatusDescription
openNewly created, awaiting action
in_progressActions being taken
closedResolved

Intervention workflow

Trigger detected (auto or manual)


┌─────────────────┐
│ Open │ ← Assigned to staff
└────────┬────────┘

Staff reviews student


┌─────────────────┐
│ In Progress │ ← Actions planned
└────────┬────────┘

┌────┴────┐
│ │
Resolved Escalate
│ │
▼ ▼
Closed Higher severity

Creating an intervention

  1. Navigate to Attendance → Interventions
  2. Click New Intervention
  3. Search and select student
  4. Choose reason code
  5. Set severity
  6. Assign to staff member
  7. Set due date
  8. Plan actions:
    • Phone call
    • Email
    • Letter
    • Meeting
    • Home visit
    • Counseling
  9. Add notes
  10. Save intervention

Intervention actions

Action typeDescriptionIcon
phone_callCall parent/guardianPhone
emailSend emailMail
letterSend letter homeFile
meetingSchedule meetingUsers
home_visitVisit student's homeHome
counselingCounseling sessionMessage
otherOther actionMore

Managing interventions

Update status:

  1. Open intervention
  2. Click Update Status
  3. Select new status
  4. Add notes about progress

Record action taken:

  1. Open intervention
  2. Click Add Action
  3. Select action type
  4. Add details and date
  5. Save

Close intervention:

  1. Open intervention
  2. Click Close
  3. Enter outcome
  4. Document final actions
  5. Confirm closure

Auto-intervention triggers

The policy engine can auto-create interventions when:

ConditionDefault threshold
Attendance rate below critical70%
Consecutive unexcused absences3+ days
Tardies in window period5+ in 2 weeks
Sudden drop in attendance15%+ decline

Part 9: Policies

Attendance policies define thresholds and automation rules.

Policy properties

FieldTypeDescription
idstringPolicy ID
schoolIdstringSchool (or tenant-wide)
academicYearIdstringYear-specific
termIdstringTerm-specific
policyNamestringPolicy name
excellentMinPctnumberExcellent threshold (%)
goodMinPctnumberGood threshold (%)
concerningMinPctnumberConcerning threshold (%)
criticalMaxPctnumberCritical threshold (%)
windowDaysnumberEvaluation window
maxUnexcusedDaysnumberMax unexcused before alert
tardyThresholdMinutesnumberMinutes late = tardy
tardyWindowDaysnumberWindow for tardy counting
autoNotifyParentsbooleanAuto-send notifications
autoCreateInterventionbooleanAuto-create interventions
isActivebooleanPolicy active

Default thresholds

RatingThreshold
Excellent≥95%
Good≥90%
Concerning≥80%
Critical<80%

Policy evaluation

When policy evaluates a student:

{
studentId: "...",
schoolId: "...",
policyId: "...",
attendanceRate: 85.5,
rating: "concerning",
requiresIntervention: false,
reason: "Attendance below good threshold"
}

Creating a policy

  1. Navigate to Settings → Attendance Policies
  2. Click New Policy
  3. Set name
  4. Configure thresholds:
    • Excellent minimum %
    • Good minimum %
    • Concerning minimum %
    • Critical maximum %
  5. Set windows:
    • Evaluation window (days)
    • Tardy window (days)
  6. Configure automation:
    • Auto-notify parents ✓/✗
    • Auto-create interventions ✓/✗
  7. Set tardy threshold (minutes)
  8. Set max unexcused days
  9. Activate and save

Part 10: Raw events

Raw events capture attendance data from external sources.

Event properties

FieldTypeDescription
idstringEvent ID
studentIdstringStudent (if applicable)
staffIdstringStaff (if applicable)
contextTypeenumWhere recorded
contextIdstringClass/transport/dorm ID
eventDirectionenumIn/out/mark
eventTimedatetimeTimestamp
sourcestringDevice/system source
deviceIdstringDevice identifier
locationstringPhysical location
rawPayloadobjectOriginal data
processedbooleanConverted to record
processedAtdatetimeWhen processed
attendanceRecordIdstringLinked record

Context types

ContextDescription
classClassroom attendance
transportSchool bus/van
dormDormitory/boarding
mealMeal attendance
eventSchool event
staff_workStaff work hours

Event directions

DirectionDescription
inChecked in
outChecked out
markStatus marked

Processing raw events

Raw events from biometric/RFID systems are processed into attendance records:

  1. Events collected throughout day
  2. End-of-day processing runs
  3. Events matched to students
  4. Records created automatically
  5. Statistics updated
  6. Interventions triggered if needed

Part 11: Pattern analysis

The system analyzes attendance patterns to identify issues.

Pattern types detected

PatternDescription
Day-of-week"Student absent every Monday"
Time-of-day"Student late in morning sessions"
Frequency"3+ absences per month"
Seasonal"Absences increase in winter"
Subject-specific"Absent for math classes"

Pattern analysis output

{
studentId: "...",
patterns: [
{
type: "day_of_week",
description: "Absent on Mondays (80% of Monday absences)",
frequency: 4,
dayOfWeek: 1
}
],
recommendations: [
"Schedule parent meeting to discuss Monday absences",
"Consider counseling referral"
]
}

Part 12: Notifications

The system sends attendance notifications automatically.

Notification triggers

TriggerNotification
Absent marked"Your child was marked absent today"
Late marked"Your child arrived late at {time}"
Low attendance"Attendance rate has fallen to {rate}%"
Intervention created"An attendance intervention has been opened"
Pattern detected"We've noticed an attendance pattern"

Notification channels

ChannelDescription
SMSText message to parent
EmailEmail notification
PushMobile app notification
In-appPortal notification

Notification settings

Per student or policy:

  • Enable/disable auto-notifications
  • Choose notification channels
  • Set quiet hours
  • Language preference

Part 13: Reports

Generate comprehensive attendance reports.

Report types

ReportDescription
Daily SummaryToday's attendance by class
Weekly ReportWeek-over-week comparison
Monthly ReportMonthly trends and patterns
Student ReportIndividual student history
Class ReportClass-level analysis
Grade ReportGrade-level comparison
Intervention ReportOpen/closed interventions
Trend AnalysisLong-term trend visualization

Report filters

FilterOptions
Date rangeCustom, week, month, term, year
Grade levelSingle or multiple
ClassSingle or multiple
StatusFilter by attendance status
Session typeMorning, afternoon, full day

Export formats

FormatDescription
PDFFormatted report document
ExcelSpreadsheet with data
CSVRaw data export

Permissions required

ActionRequired permission
View dashboardattendance.view
View recordsattendance.records.view or attendance.view
Mark attendanceattendance.records.create or attendance.create
Edit attendanceattendance.records.update or attendance.update
Delete attendanceattendance.records.delete or attendance.delete
Bulk markattendance.records.create or attendance.create
View statsattendance.stats.view or attendance.view
View interventionsattendance.interventions.view or attendance.view
Create interventionattendance.interventions.create or attendance.create
Manage interventionattendance.interventions.update or attendance.update
Close interventionattendance.interventions.update or attendance.update
View policiesattendance.policies.view or attendance.view
Manage policiesattendance.policies.update or attendance.update
Export reportsattendance.reports.export or attendance.view

Best practices

Daily marking

  • Mark attendance at the same time each day
  • Use the class register for efficiency
  • Record arrival times for late students
  • Add notes for unusual circumstances
  • Verify substitutes mark attendance

Interventions

  • Review at-risk list daily
  • Assign interventions promptly
  • Document all actions taken
  • Follow up within due dates
  • Close interventions with outcomes

Policies

  • Set realistic thresholds
  • Review policies each term
  • Enable auto-notifications for absences
  • Configure intervention triggers
  • Communicate policies to parents

Data quality

  • Review unprocessed raw events
  • Correct errors same day
  • Verify biometric/RFID syncs
  • Audit records weekly
  • Recalculate stats if discrepancies found

Troubleshooting

Attendance not saving

Causes:

  • Network connectivity issue
  • Session expired
  • Conflicting updates

Fix:

  1. Check network connection
  2. Refresh page and retry
  3. Clear browser cache
  4. Force save with Ctrl+S

Statistics incorrect

Causes:

  • Records modified after calculation
  • Missing days in date range
  • Duplicate records

Fix:

  1. Navigate to student stats
  2. Click Recalculate
  3. Verify source records
  4. Check for duplicates

Intervention not auto-created

Causes:

  • Policy not active
  • Auto-create disabled
  • Student exempt
  • Threshold not crossed

Fix:

  1. Verify policy settings
  2. Check auto-create enabled
  3. Review student exemptions
  4. Manually create if needed

Biometric events not processing

Causes:

  • Device offline
  • Student not enrolled
  • Processing job failed

Fix:

  1. Check device connectivity
  2. Verify student biometric enrollment
  3. Manually trigger processing
  4. Contact IT if recurring