Skip to content
All posts

Operations

Your school knows who was in class. Does it know who was teaching?

The pupils' register is taken every morning. Staff attendance is a signing book on the front desk. Here is how we built the second one, and the four things we deliberately refused to do.

The 1410SMS team5 min read

Most schools know exactly who was in class yesterday, and only roughly who was teaching.

The pupils' register is taken every morning by a teacher who has to be there anyway, and it is filed in a system. Staff attendance is a hardback book on the front desk, signed on the way past, with a time column filled in from memory and a month that gets added up only when somebody asks.

Nobody chose that. It is just what is left when one register has a natural moment and the other does not.

1410SMS now records staff attendance the way it records everybody else's. Most of the design is in what it refuses to do.

The staff attendance board for a school day: counts of clocked in, late, not in yet and absent across the top, then a table of every staff member with their status, first clock-in time, whether they are on site, hours worked so far, and anything needing checking

It is a punch log, and nothing about a day is stored

Staff clock in and clock out. Those are appended, and nothing else is written.

Whether a day counts as present, late, absent or closed is worked out when somebody reads it, from the punches and the school's own settings. Nothing stores the verdict.

The reason is drift. Store "3 September: present" and you have created a record that can disagree with the punches it came from, and then somebody has to decide which one is right. Derive it and there is one answer, and correcting a punch corrects everything downstream of it in the same moment.

Absence is derived and never entered

A staff absence is no clock-in, on a working day, that nobody was excused from.

There is no absent button, so nobody marks a colleague absent and, more to the point, nobody forgets to. The board, the timesheet, the absence report and the morning reminder all ask the same question of the same data, so no two of them can disagree about who was in.

Each school's own digest goes out at its own 07:00, off an hourly tick, rather than at one time that is the morning in Lagos and the middle of the night somewhere else.

Verification is configuration, and a check with no implementation fails

Schools do not agree on what proves somebody arrived. Some want a photograph, some a location, some a shared device on the desk, and some are perfectly happy with a tap.

So the verification chain is per-school. With one rule: a required check that has no implementation fails rather than passes. A security control that quietly degrades into a green tick is worse than not having one, because the school believes it is switched on.

Five preconditions cannot be switched off by anybody: three of them can refuse a punch (a location reading too vague to prove anything, a faked location, a second tap moments after the first) and two only record what they found (whether the school was down as closed that day, and how far the handset's own clock was from ours).

Alongside them, one phone is bound to one member of staff per school, which closes buddy-punching without a fingerprint reader, a turnstile or anybody's face. Per school rather than outright, deliberately: somebody teaching at two schools carries one handset, and the second school has no business being told the first has it.

No background location, and the reminder says only what a clock knows

The mobile app does not use background location. Not as a setting, not as an option a school can turn on. It is forbidden in the client and a test enforces it.

The morning reminder is therefore a clock, and the wording is a clock's: it is ten past eight and you have not clocked in yet. It does not say "you appear to be at school", because it does not know that and will not imply it. A staff attendance feature that tracks where teachers are on a Saturday is a different product, and not one we want to sell.

The one we got wrong first

A recorded school closure used to refuse a staff punch. It reads as obviously correct: the school is shut, so nobody is clocking in.

It is wrong, and a school found out for us. Staff work when the pupils are away. Marking, planning, admissions, the fortnight before a term resumes. A school that had dated its terms honestly found itself locked out of its own timesheet for the whole of the long vacation.

A closure now records the punch and still derives the day as closed. The minutes count, so the timesheet is right. The day-present does not, because the denominator for punctuality is the days the school was actually open.

Leave, deliberately unfinished

Leave is two inclusive dates and a kind the school defines. There is no approval workflow.

Approvals, shift patterns and payroll belong to a workforce module, and half of one embedded in attendance would have to be unpicked later. What matters is that the deferral is safe: the timesheet export already carries every segment's exact in and out timestamps, so any rounding or approval policy can be computed from data that exists today rather than needing a year of history nobody kept.

The Staff leave panel, headed with a line saying recorded leave silences the absence digest and is reported apart from absence on the timesheet, and buttons for Kinds and Record leave. Three records are listed: Chidi Okafor, Training, 17 to 19 August 2026, 3 days, curriculum workshop in Abuja; Emeka Johnson, Official duty, 12 August 2026, 1 day, WAEC marking centre; and Amina Yusuf, Medical, 10 to 14 August 2026, 5 days, surgery recovery. Training and Official duty carry a green badge and Medical a grey one.

What it looks like day to day

The web has a six-tab attendance workspace covering pupils and staff together, and any one of six permissions opens it, with each tab gating itself. So a class teacher with the register permission gets the register, and an HR officer with only the staff keys still reaches the page rather than being turned away at the door.

The phone carries both halves: a member of staff clocks in from it, and an administrator gets the board, the timesheet and the leave list, built from the permissions they actually hold.

The four time settings ship with ordinary defaults, and clearing a box is a real answer rather than an empty one. It means "follow the working hours I have already given you", which is the fallback for a school whose day is not the usual one.

The 1410SMS team

1410 Technologies Limited

We build and run 1410SMS, a school management platform used by schools of every size.

Ready to try it with your school?

Free for schools up to 40 students. No credit card required.