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.
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.

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.

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.
Keep reading
Operations
Nobody should draw an exam timetable in pencil
One person draws the exam grid, one paper moves, and the whole thing needs checking again by eye. Usually it is not. Here is the workspace that replaced the pencil.
Read article
Guides
The bug that printed confident nonsense
A school asked why the Arabic on its report cards was gibberish. It was not gibberish, and that is what made it hard to spot. What it takes to print Arabic properly in a PDF.
Read article
Ready to try it with your school?
Free for schools up to 40 students. No credit card required.