HandbookAcademics10

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 multi-factor presence proof no one can fake, 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
  • 11chapters
  • ≈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

  1. 01Open the locations admin (route below) and click 'New campus'.
  2. 02Draw the polygon on the map or paste GPS coordinates — the system snaps to your existing campus record from Platform → Multi-campus.
  3. 03Optionally add named sub-blocks (a hostel wing, a science block) — useful later for officer round assignments.
  4. 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.

Chapter three

The teacher's daily surface#

For a class teacher, attendance lives at one URL: /teacher/attendance. Open it; today's classes show as cards, each badged Marked or Pending. Tap the class you're taking and the student grid loads. Mark by exception: tap Mark all present, then change only the students who aren't — each row has a status dropdown with the six states (present, late, half-day, excused, absent-justified, absent-unjustified). When the roll is right, press Save and the whole period writes in one batch.

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 portal has four screens. The landing, /officer, is "Today's Round" — the blocks assigned to the officer today, any round still open, and a Start round button. The workspace, /officer/round, is the active round: work down the classes to visit this period, verify each (the multi-factor presence check from the signature chapter — notify the teacher, then scan or key in the rotating code), and flag mismatches, empty classes, and unauthorised substitutes inline. The third, /officer/kpi, is the officer's own performance dashboard — rounds completed, completion rate, mismatch rate, average latency, over a 7- / 30- / 90-day window. The fourth, /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.

The signature chapter

Presence you can't fake#

Every school knows the oldest trick in staff attendance: sign the register, teach for two minutes, bill four hours. YESS answers it with the one feature no other SIS carries — a multi-factor, time-bound proof of presence. Before an hour is paid, four things have to agree: the officer, the teacher, the clock, and the school’s own rules.

It runs as a loop. The officer walks the block with a live map at /officer/round — every class to cover, colour-coded by whether the teacher has arrived and been verified. At the door the officer taps the class; the teacher’s phone, on /teacher/present, buzzes and reveals a rotating code that refreshes every ~30 seconds, exactly like an authenticator app. The officer scans it, and the server checks the code is the live one (±1 step), the period is real and scheduled now, and the round is open — only then is the officer factor recorded.

The teacher signs in once and the clock starts. Consecutive periods batch into a single session — sign in at the start of a double, not twice — but a break between periods splits them, so a teacher with a morning pair and an afternoon pair signs in and out twice. At the end of the last period the teacher does the two closing factors — the roll-call register and the logbook — which timestamp the exit, then signs out. The payable span is the dwell: entry to close. Not the box ticked — the time actually spent in the room.

Leaving early is handled with the same honesty as arriving late. A departure past the school’s grace window (say thirty minutes) is flagged, and the school decides the consequence — cancel the hour, pay half, or send it to HR with a reason the teacher writes on the spot. It is the same logic the school already trusts for late arrivals, pointed at the other end of the period. Grace itself is set school-wide and can be overridden per period.

Two accountability surfaces close the loop for administrators. The coverage-miss queue at /dashboard/attendance/officer-misses lists every class that ended without an officer verification, attributed to the officer who was on duty — the watcher is watched, and the officer’s own coverage is scored. And when a teacher’s phone is genuinely dead, the manual-override queue at /dashboard/attendance/manual-overrides lets an authority grant a time-boxed exception on request — a fallback with a paper trail, not a backdoor anyone can open.

The validated span flows straight into payroll. A school that pays teaching staff by the hour sets the pay basis to presence, and each payable period — entry to close, minus any cancelled or halved hour — becomes a line on the payslip. Attendance, for the first time, is the same number finance pays on.

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. Five tabs (a student signed in to their own portal sees four — Overview, Today, History, and a Revendicate tab in place of the parent's Alerts/Submit-query pair):

  • Overview. The attendance ring and the term's running totals at a glance — present, late, absent, excused.
  • Today. The live period-by-period timeline, auto-refreshing. Green for present, amber for late, red for absent, grey for upcoming.
  • Alerts. Every absence push the school has sent the parent in the term, with the reason if one was logged — each acknowledgeable.
  • History. The recent day-by-day record, each row in the six-state palette.
  • Submit query. The dispute panel — pick the child, pick the date, write the reason, attach a doctor's note. The tab badges the count of unjustified absences and 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 page prints to PDF (the browser print dialog) with the school's heading, a headteacher signature line, the present / absent / late / excused totals and the attendance rate for a chosen calendar year — plus a "perfect attendance" badge when it's earned.

The wellbeing surface, /portal/attendance/wellbeing, is YESS's quietest but most-important parent screen. If a child is sliding, the parent sees a soft, clear summary here — a wellbeing level, a risk score out of 100, the factor pills driving it (attendance, grades, punctuality, behaviour, fees, assignment lateness), the term's trend, and concrete next steps. 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

  1. 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.
  2. Day 2 — Teachers print QR codes for their classes. Students download the YESS mobile app and complete the one-tap onboarding.
  3. Week 1 — Daily attendance flows. Parents receive their first absence pushes (if any) and learn how the alert channels work in their own life.
  4. Week 2 — Officer rounds settle into rhythm. The admin reviews the officer-KPI roll-up on Friday afternoon to confirm coverage is real.
  5. Week 3-5 — Late-grace policy bites. First infringement rows write to the discipline log (which the conduct book picks up).
  6. 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.
  7. Week 7-10 — Parent meetings, excuse appeals, manual-entry overuses all logged and reviewed. The signal-integrity queues are reviewed weekly.
  8. 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.
  9. 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.
  10. 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

What makes this elite

  1. 1

    Presence is a dwell, not a checkbox

    A multi-factor, time-bound proof no other SIS carries: a rotating ~30-second officer code, a teacher sign-in/sign-out, and an end-of-class register + logbook that timestamp the exit. Pay is the span actually present — consecutive periods batch into one session, a break splits them, an early departure past grace is cancelled/halved/sent to HR, and the validated hours flow straight into payroll. The officer who skips a room is scored against his own coverage. Five classic falsification tricks, each one shut.

  2. 2

    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.

  3. 3

    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.

  4. 4

    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.

  5. 5

    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.

  6. 6

    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.

  7. 7

    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.

Tutorial

Do it step by step#

The class teacher's daily surface, on the real screen. The setup in Chapter Two only has to happen once; this is what every morning looks like afterwards.

  1. 1

    Open today's roll

    A class teacher opens /teacher/attendance. Today's date and your classes show as cards, each badged Marked or Pending; tap the one you're taking, or pick it from the class selector. A substitute sees the class they're covering in the same list.

    Covering for a colleague? The substitute banner makes it unmistakable, and the roll still signs with your name.

  2. 2

    Start from all-present, mark the exceptions

    Tap Mark all present, then change only the students who aren't: late, excused, half-day, or absent (justified or unjustified). Any marks already taken for the period are pre-loaded, so you correct rather than redo.
  3. 3

    Save the roll

    Press Save. The whole period writes in one batch, and the absence pushes go out within seconds — in the family's language, on the channel they chose.

    A whole period is two taps — Mark all present, then save — done before the bell stops ringing.

  4. 4

    Admin watches the morning live

    The school admin watches red exceptions arrive on /dashboard/attendance/today, clears parent excuses on /dashboard/attendance/queries, and reviews each officer round on /dashboard/attendance/officer-rounds.

Two taps a period, and the parent knows before the bus reaches the second stop.