Attendance engine.
Attendance is the first promise YESS keeps to a parent. If their child is in school, you know. If their child is not, the parent knows — by the time the morning bus has passed the second stop. This handbook walks the attendance side of the building: the classroom QR, the officer's round, the parent's pocket, the chronic-absence detector. Conduct — which attendance feeds, and which lives next door — has its own book.
- 32live attendance routes
- 6actor types
- 10chapters
- ≈18 minto read
Prologue
A note on this book and the next#
Attendance and conduct were a single book until we noticed how big each one had become. Schools that pick up YESS read this attendance handbook on Monday, the conduct handbook on Tuesday, and meet themselves on Wednesday morning, prepared. Both books share a backbone — the same student profile, the same audit trail, the same parent push — but each opens onto its own surfaces, its own roles, its own daily rhythm. Each deserved the space.
What follows is the attendance side: how a school tells YESS where it is, how it captures who arrived and who didn't, how parents learn about it in time to do something, how the system catches forgery, and how it spots a child sliding away before the term ends. When you reach a chapter that wants to talk about discipline, restoration, safeguarding, or conduct marks, you'll find a link to the conduct book — that side of the conversation lives there.
Two books, kept side by side. Read this one first.
Chapter one
A morning, end to end#
We start with a single morning at Greenwood — the school the handbook uses as its example throughout. Follow this story end to end and the rest of the book is just detail.
07:32. The first bus arrives. A student walks through the gate; her phone, in her pocket, connects to the school's main WiFi access point. The system records a presence signal — soft, low-priority, used only as corroboration.
07:45. First period begins. The form teacher projects the class QR onto the smart-board. Twenty-four of the thirty students scan with the YESS app within three minutes; three students arrive between 07:48 and 07:53 (inside the seven-minute grace, marked late but present); two are absent. The teacher opens /teacher/attendance on her phone, sees the two greyed-out rows, and either taps to mark excused (if she has the reason) or leaves them as unexplained.
07:53. The system writes the parent push for the two absent students. The mother of one is at the office; her phone buzzes with a WhatsApp message in French (her preferred language): her daughter is not at school. She opens /portal/attendance, sees the live roll for the period, and submits an excuse — a doctor's appointment, photo of the slip attached.
10:30. Mid-morning round. The duty officer opens /officer/round. Block A — 64 students assigned, all accounted for. Block B — 58 of 60. The two unaccounted students are flagged. One is the daughter we already have an excuse for; the system reconciles automatically. The other surfaces a red exception on /dashboard/attendance/today — the live command-centre the school admin watches all morning.
15:40. End of day. The compile job runs. Yesterday's data is now closed. Three students this week have crossed the school's late-policy threshold; an infringement is written; the row crosses into the conduct module's discipline log for the dean to handle. (Conduct picks it up from here — read the conduct handbook for what happens next.)
16:15. The principal opens /dashboard/attendance/chronic-absentees before going home. Two new names this week. He notes them, asks the wellbeing officer for a check tomorrow. By the time the parent knows there is a problem, the school is already on it.
Chapter two
The eight setup screens#
Every school that opens YESS spends the first week here. The eight screens below are the foundation: locations, QR codes, late policy, penalty rules, excuse quotas, officer assignments, signal policies, channels. Once these are set, the daily flow runs itself.
One screen per breath — pick the first from the rail below and work through them in order. Each takes a few minutes; together, they take an afternoon.
Feature 01
Where the school is
What it does. Before a single roll can be taken, the school tells YESS where it is — the geofence of each campus, optionally the named blocks inside it (Block A, lab wing, sports field). Every later attendance signal is anchored to one of these locations. Without locations you cannot generate a class QR, you cannot run an officer round, you cannot prove a student was physically present.
How to use it
- 01Open the locations admin (route below) and click 'New campus'.
- 02Draw the polygon on the map or paste GPS coordinates — the system snaps to your existing campus record from Platform → Multi-campus.
- 03Optionally add named sub-blocks (a hostel wing, a science block) — useful later for officer round assignments.
- 04Save. The screen now shows every location with its area in m² and any open issues (gap in geofence, missing block name).
Chapter two · index
The eight setup screens, by route#
The same eight screens, listed as a navigation aid for the school admin sitting in front of a YESS account. Click any to open it in your own school.
- 01 · Locations. /dashboard/attendance/locations
- 02 · Class QR codes. /dashboard/attendance/qr-codes / /dashboard/attendance/qr-codes/print / /dashboard/attendance/qr-secret
- 03 · Late-grace policy. /dashboard/attendance/late-policy
- 04 · Penalty rules. /dashboard/attendance/penalty-rules
- 05 · Excuse quotas. /dashboard/attendance/excuse-quotas
- 06 · Officer assignments. /dashboard/attendance/officer-assignments
- 07 · Signal policies. /dashboard/attendance/signal-policies
- 08 · Channels. /dashboard/attendance/preferences / /dashboard/attendance/preferences/channels
Chapter three
The teacher's daily surface#
For a class teacher, attendance lives at one URL: /teacher/attendance. Open it; the current period is preselected; the student grid loads in under a second. Mark by exception — green by default, tap once for late, twice for absent, long-press for excused. The system auto- saves on every tap; there is no Save button.
A substitute teacher opens the same URL. The system has already worked out, from the timetable's substitution table, that today they cover period 3 for the absent regular teacher. The screen shows a clear banner — You are covering for X today — and the substitute's roll counts toward the regular teacher's attendance audit, signed with the substitute's name.
Teachers who need to file their own absences open /teacher/excuses. Submit medical, bereavement, professional-development — with documents attached. The HR officer sees the row on her queue the same minute.
The conduct side of the teacher's day — daily marks, per-class chips, per-student timelines — lives in the conduct book. Conduct and attendance share data underneath; in the UI, each gets its own surface so neither crowds the other.
Chapter four
The officer's afternoon#
Attendance officers — duty masters, prefects-on-duty, deans-of- discipline depending on the school's name — open a dedicated portal at /officer.
The day has three screens. The first, /officer/round, is the active-round surface: start a round, see the students assigned to your block this period, scan each face/badge/QR, flag exceptions inline. The second, /officer/kpi, is the officer's own performance dashboard — rounds completed, exceptions flagged, average response time, week over week. The third, /officer/me, is the officer's own attendance, since the officer is also a staff member with the same clock-in obligations as any teacher.
For the school admin, the forensic view of every officer round across the term lives on /dashboard/attendance/officer-rounds — every scan, every exception, every reconciliation, time- ordered, filterable by officer or block. The officer's own KPI aggregations roll up at /dashboard/attendance/officer-kpis for the admin's quarterly review of the officer-corps performance.
Chapter five
When the day doesn't go as planned#
Half of attendance work is the exceptions. A student arrives 45 minutes late after a hospital visit. A parent collects their child at noon. A bus breaks down on the highway. Every one of these has a screen.
Late arrivals and early departures — /dashboard/attendance/late-early shows every irregular-time event for the day, with reason, signed authoriser, and parent acknowledgement.
Student departures — when a parent arrives to collect a child mid-day, the front office logs it on /dashboard/attendance/departures. The mandatory fields are: who collected, relationship, ID verified, expected return time. The class teacher sees the row surface on her roll within seconds.
Excuses and appeals — parents submit through the portal; the queue lands on the school admin's /dashboard/attendance/queries (or the dedicated quotas screen above). Approve, reject, or ask for more information.
Staff justifications — when teachers submit excuses (see Chapter Three), the HR officer reviews on /dashboard/attendance/staff-justifications.
Manual entry fallback — when the network is down, when the projector is broken, when the QR sticker is gone: /dashboard/attendance/manual-entry. The system caps the number of weekly manual entries a teacher can make (the default is four periods, configurable) to keep the fallback as a fallback and not a habit.
Reactivations — a teacher restored a student's row that the auto-mark-absent cron had already written. The audit page /dashboard/attendance/reactivations lists every reactivation with the reason — keeps both the teacher and the system honest.
Per-student and per-staff timelines — /dashboard/attendance/students for students, /dashboard/attendance/staff for staff. One row per person, every attendance event in the term, in time order.
Attendance entries and verifications — /dashboard/attendance/entries is the raw event log; /dashboard/attendance/verifications handles public QR verification when an outside party (a partner school, a regulator) needs to confirm a student's presence on a specific day. The reports surface at /dashboard/attendance/reports.
Chapter six
What every parent sees#
A parent opens YESS and lands on a single home for their children. For attendance, the entry point is /portal/attendance. Four tabs:
- Today. The live period-by-period roll. Green for present, amber for late, red for absent, grey for upcoming.
- This week / this term. The running totals and a pretty histogram showing whether the child is trending up or down.
- Alerts. Every absence push the school has sent the parent in the term, with the reason if one was logged and the action the school took.
- Submit a query. A short form — pick the child, pick the date, write the reason, attach a doctor's note. Hits the school admin's review queue immediately.
Parents who need a certificate of attendance — for a visa, an internship, a transfer — open /portal/attendance/certificate. The PDF generates with the school's letterhead, the headteacher's signature, a QR for third-party verification, and an exact day-by-day breakdown for any window they choose.
The wellbeing surface, /portal/attendance/wellbeing, is YESS's quietest but most-important parent screen. If a child is sliding — chronic-absence pattern detected, a recent safeguarding flag, two unacknowledged conduct alerts — the parent sees a soft, clear summary here, with a one-click button to talk to the dean. The conduct side of what parents see (the marks, the discipline acknowledgements, the restorative interventions) lives in the conduct book — the wellbeing surface is where attendance and conduct meet again on the parent's side.
Chapter seven
Anti-cheating and signal integrity#
QR attendance is convenient. It is also forgeable. A student screenshots a friend's QR, or a teacher marks a roll without ever opening the classroom. YESS expects this and arms the school against it.
Mismatch review. /dashboard/attendance/mismatches surfaces every event where two signal sources disagree — the QR says student X scanned at 07:48 from inside the school WiFi network, but the WiFi access-point logs say her phone was on the mobile-data network until 07:55. The system computes a fraud confidence band on every mismatch (low / medium / high / critical) using kind base, severity multiplier, signal bonus, and the actor's prior history. The admin reviews and decides.
Scan anomalies. /dashboard/attendance/scan-anomalies covers the lower-tier weirdness — a single QR scanned by two phones within 200ms, a scan from outside the geofence, a scan while the teacher is logged in as someone else.
Secondary signals. /dashboard/attendance/secondary-signals — the forensic event log of every WiFi-presence and bus- arrival ping, retained for the term. Useful when an audit needs to reconstruct what actually happened on a specific morning.
QR-secret rotation. /dashboard/attendance/qr-secret — schools that take attendance integrity seriously rotate the school-wide QR cryptographic secret on a schedule. The page logs every rotation, who triggered it, and which devices need re-onboarding to keep working.
Chapter eight
The chronic-absence early-warning system#
A student missing the same Tuesday afternoon for six weeks is telling the school something. The chronic-absence detector at /dashboard/attendance/chronic-absentees looks at the term's record and flags the pattern long before the end of the term.
The detector is configurable. The default thresholds are: 10% of enrolled periods missed in a 30-day window, OR a same-period pattern (e.g., absent for Tuesday-period-5 three times in four weeks), OR a single-subject absence pattern (missing only PE), OR an end-of-day pattern (leaving early three times this week). A school can raise, lower, or replace any of these.
For each flagged student, the page surfaces:
- The pattern that triggered the flag, in plain English.
- The student's safeguarding status (read from the conduct module's flag register — a chronically absent trauma-flagged student is a different conversation than a chronically absent star athlete).
- The action history — every parent push sent, every excuse submitted, every meeting logged.
- One-click links to the wellbeing officer, the form teacher, and the dean.
A second screen, /dashboard/attendance/alerts, holds the historical alert queue — every absence alert ever sent, fanned out by channel and by parent, with the dispatch status. Use it to audit "did we actually contact this family on the 12th?"
Chapter nine
Two adjacent surfaces#
Two attendance-adjacent surfaces sit outside the main module tree but matter on the right days.
Holiday-class attendance. /dashboard/timetable/holiday-classes/<id>/attendance is the review surface for the optional sessions schools run outside the normal timetable — Easter revision, summer remedial, weekend extension. The roll uses the same engine; the page lives in the timetable module because the sessions are scheduled there. Parents see the holiday-class detail at /portal/holiday-classes/<windowId>.
Owner snapshot. /owner/attendance is the multi-school owner-portal view: every school the owner runs, the day's attendance rate, week-to-date trend, the top-five exception counts. The same view exists for conduct at /owner/conduct. Owners of holding groups read this surface as their morning briefing.
A term, day one to chronic-absence alert
Term begins
- Day 1 — Admin sets the late-grace policy, the penalty rules, the excuse quotas, the channels. Officers are assigned to blocks.
- If the school is migrating mid-year, the prior term's chronic-absence flags carry over.
- Day 2 — Teachers print QR codes for their classes. Students download the YESS mobile app and complete the one-tap onboarding.
- Week 1 — Daily attendance flows. Parents receive their first absence pushes (if any) and learn how the alert channels work in their own life.
- Week 2 — Officer rounds settle into rhythm. The admin reviews the officer-KPI roll-up on Friday afternoon to confirm coverage is real.
- Week 3-5 — Late-grace policy bites. First infringement rows write to the discipline log (which the conduct book picks up).
- Week 6 — Mid-term. Chronic-absence detector activates for any student crossing the configured threshold. Wellbeing officer opens the early-warning page; dean assigns owners.
- Week 7-10 — Parent meetings, excuse appeals, manual-entry overuses all logged and reviewed. The signal-integrity queues are reviewed weekly.
- Week 11 — Officer KPI review. The school admin opens the officer-rounds forensic page to ensure the round coverage was actually delivered through the term.
- Week 12 — Attendance certificates generated on demand for graduating, transferring, or visa-applying students. The chronic-absence cases are reviewed for next-term follow-up.
- End of term — Anomalies are reviewed. Next term's QR codes are printed. The cycle starts again on Day 1.
Term closes
Where this connects
- 11Conduct & restorationThe companion book. Attendance feeds conduct (lates, absences become discipline-log rows) — read it next.
- 07Gradebook & continuous assessmentAttendance ≥80% is the prerequisite for exam eligibility, surfaced at gradebook compile time.
- 15Communication hubEvery absence alert fans out through this hub. Per-event routing, per-school quotas, per-parent preferences.
- 15Notifications & alertsPer-parent channel preferences and the per-event routing live in the communication handbook's notifications chapter.
What makes this elite
- 01
Twelve primary sources plus a corroboration policy
Twelve attendance source types on attendance_entries (qr_self, qr_officer, qr_event_scanner, qr_self_excuse_exit, qr_bus_scanner, biometric, geofence, manual, auto_absent, auto_field_trip, auto_holiday, auto_reverse) plus five corroboration signals on school_signal_policies (geofence, wifi, biometric_secondary, ble, clock_skew) ranked per-school. Every row in the audit log carries its source + the signal chain that fed into it. Disputed attendance can be reconstructed minute by minute.
- 02
Anti-cheating with fraud-confidence scoring
Mismatches and anomalies are scored on a four-band confidence axis (low/medium/high/critical) using kind base, severity multiplier, signal corroboration and the actor's prior history — keeping the review queue short so the rows that show up genuinely deserve a human's eyes.
- 03
Parent alerts before the bus reaches the second stop
Per-event push routing, per-parent channel preference (WhatsApp / SMS / push / email), per-school fallback order — an absence at 07:53 reaches the family before their morning commute ends. No SIS we surveyed achieves this on-rail speed across all four channels.
- 04
A wellbeing surface for parents
When a child is sliding — chronic-absence pattern, recent safeguarding flag, unacknowledged conduct alerts — the parent sees a soft, clear summary on a dedicated portal page, with a one-click button to talk to the dean. Visibility for families, not just for administrators.
- 05
Chronic-absence detection that's configurable
Four pattern types out of the box (window threshold, same-period, single-subject, end-of-day), all override-able by the school. Surfaces flagged students with safeguarding context and prior action history — the report a wellbeing officer can act on without further preparation.
- 06
Owner-level multi-school rollup
Holding-group owners get a single attendance snapshot across every school they run, with day-of trends and exception counts. Most SIS platforms are single-school; YESS treats the federation as a first-class actor.
Epilogue
A note on tone#
The screens described in this book can be set up in a long afternoon. The values they encode — that an absence is a conversation, not a deduction; that the parent learns the news before the term does; that the chronically absent student is noticed in week six, not in week twelve — take longer.
Every default in YESS leans toward early visibility for families, restoration over punishment (handled in the conduct book), and privacy for the vulnerable. A school can choose otherwise — the configuration screens make that possible — but the defaults exist because the handbook's authors have run schools too.
The register is the relationship. Keep it carefully — and read the conduct book next.