Here or not here
is not enough information.
A binary register answers one question — was the student in the room — and a school is asked several. Was she there? Did she arrive twenty minutes late for the third time this month? Did the family tell us she would be away, or did nobody know? Those are different facts with different consequences, and a register that collapses them into present-or-not forces the school to reconstruct the difference from memory and message threads.
The distinction that earns its keep immediately is absent against excused. It is the difference between a family you must call today and a family who already told you, and a school that cannot tell them apart will do one of two bad things: chase parents who explained last week, which makes the school look disorganised, or stop chasing altogether, which is worse. The one that earns its keep slowly is late, because lateness is a pattern rather than an event — one late arrival is traffic, six in a term is a student who has stopped wanting to come, or a timetable slot that does not work for that family.
Keep a free-text comment alongside the status and use it sparingly, for the fact that will matter later: "left at 5.40, unwell", "connection dropped twice". On SprintUp the register carries status, a comment and, for online classes, the minutes attended, which is what makes the next section possible.
The teacher,
in the session, not at the weekend.
Attendance is marked by the person who was there, during or immediately after the session. This sounds obvious and is routinely violated: in many small schools the teacher notes absences on paper and someone types them up on Friday, by which point the paper is incomplete and the typist is guessing. Every hour between the session and the record is accuracy lost, and the record is the thing a parent, an inspector or a court may later rely on.
Make it two taps and it will happen. Make it a separate system with its own login and it will not. The practical test for any platform is whether a teacher can open the class they are teaching, see the roster, and mark it without leaving the place they are already working — in a room on a phone, or in the same window as the live class online. For a class held in the room, there is nothing to automate: the teacher marks the register and that is the whole of it. What can be improved is the friction, not the judgement.
The platform knows the minutes.
It does not know the reason.
A live online class produces a fact a physical room does not: exactly how long each student was connected, and when they joined relative to the start. That is genuinely useful, and it is tempting to turn it straight into a register — connected for most of the class, mark present; joined late, mark late; never appeared, mark absent. Most platforms that offer attendance for video classes do something close to this.
It is the wrong shape, and the reason is in the data. Connection time is evidence about the network, not about the student. A child whose home connection dropped for twenty minutes of a sixty-minute class was present and trying; a teenager who joined the call, muted, and left the room was connected for the full hour and absent in every sense that matters. A register that records the first as absent has put an untrue mark on a child's record; the family will find out, and they will be right to complain.
SprintUp therefore uses connection time to suggest a status rather than to set one. The class opens with the register pre-filled from what the platform observed, and the teacher — who watched the lesson and knows which camera was on and who answered a question at minute fifty — confirms or overrides it before it is saved. The teacher's two taps become one glance and an occasional correction, which is the actual saving, and the record stays something a school can stand behind.
Two numbers,
set per school and worth revisiting.
If the platform is going to suggest, the school has to say what it should suggest. Two settings do the work: the share of a session's actual length a student must be connected for to be suggested present, and the number of minutes after the start beyond which joining is suggested late. On SprintUp these are set per school and default to 75% and 10 minutes — sensible for a ninety-minute adult class and worth adjusting for anything shorter or younger.
The one to think about is the short class. In a forty-five minute session, a ten-minute connection problem is nearly a quarter of the class, and a 75% threshold will suggest absent for a child who was there and trying for thirty-five minutes. Lower the percentage for short sessions, or accept that the teacher will override more often — either is fine, as long as it is a decision rather than a default nobody looked at.
Three rules
that keep it usable as evidence.
A cancelled class is cancelled, not empty. If the school called the session off, the session carries that state and no student is marked absent for it. Registers that simply have no entries for cancelled classes produce attendance rates that punish students for the school's own decisions, and parents notice.
Corrections are made, not overwritten quietly. When a family produces a note a week later, change the status from absent to excused — but the school should be able to see that it changed and who changed it. This matters in the rare case where attendance is disputed, and it matters for the ordinary case where an administrator wants to know why a rate moved.
Attendance is personal data about a child. It is held under the same obligations as everything else in the student record: kept because the school has a reason to keep it, visible only to people who need it, and included when a family asks what you hold about them. That is not a feature question; it is the school's duty as controller, and the GDPR cluster covers what follows from it.