Admissions, attendance, timetables, examinations and fees — for a single school or a trust running fifty of them. We configure it, brand it, host it and keep it running. Nobody on your staff touches a server.
What the day needs: who is absent, which registers have not been taken, what fees are overdue, and whether anything is waiting on somebody.
Enquiry to enrolment, with the documents attached to the student rather than a drawer.
Period-wise or daily, on a phone, with absence visible to parents the same morning.
Built once, checked for clashes, and reflected everywhere a teacher or parent looks.
Who is in this week, as a grid, because “is she in on Thursday” is a question you answer by looking. Three states a day, not two: on, away, and nothing recorded — a school that has never filled a duty roster in must not have every day read as “off”, or the board is a lie.
Every school does this on a whiteboard at eight in the morning: read the leave book, read the timetable, work out which classes have nobody in front of them, then work out who is free. This does the reading and leaves the deciding. Each uncovered period is a card with its three best substitutes as buttons — the teacher who takes that subject first, then one who teaches that class, then anybody free.
The mistake the whiteboard makes every term is giving the teacher who was free in period three two classes in period three. Cover already handed out counts as busy, and the check runs again on the server at the moment of writing — because the head of section on a laptop and the office on a desktop both saw the same teacher free. A period nobody can take stays on the board in red rather than quietly disappearing.
Marks entry, grading schemes, and report cards that come out looking like your report cards.
The three the office is asked for weekly, each on its own numbered register — a bonafide book and a TC book are two books, and a serial that jumps because a different document was issued in between is one nobody can reconcile. A bonafide states the student is studying here, so it is refused for anybody who has left; a character certificate is not, because somebody who left is exactly who needs one. Each records the standing it certified, so a reprint years later cannot start claiming a former student is still on the roll.
The document a family cannot enrol elsewhere without, numbered by session and issued once — issuing it takes the student off the roll in the same write, so nobody is ever counted twice in a return. Whether dues are clear is read from the fee ledger, and the working days and days present are counted from the class registers — neither is typed, because a clerk who can type “all dues paid” or “190 of 200 days” can make the school sign a falsehood the parent is then holding. The date of birth prints in words as well as figures, for the same reason a cheque does. A reissue is stamped DUPLICATE and keeps the original serial — a second original is how one child is admitted to two schools.
Structures, concessions, instalments and receipts, reconciled without a spreadsheet.
The roll, searchable by name, admission number or class, with guardians and the history that follows a child through the school.
The group, for a trust running several schools: every campus and the sum of them on one screen — the roll, who is present today, what is outstanding. Attendance is counted across every child rather than averaged between campuses, so a school of forty does not weigh the same as one of nine hundred. If a campus cannot be read, the totals say so and name it, because five schools presented as six is a number somebody acts on.
Who works here, and three tiers so a class teacher can take a register without being able to edit a fee structure.
Hosted, backed up, monitored and updated by us. It keeps working when the connection does not.
Its own six-character address, its own data, its own staff. One school's records are not one query away from another's — they are behind a different access check.
Grant an owner once at the group and they reach every campus, including the ones opened next year. No re-inviting anybody when the twelfth school joins.
Our support administrators, your administrators, and your staff scoped to what their job needs. Roles are data we can change, not code we have to deploy.
The statutory arithmetic is the same engine that runs our own payroll: the provident fund wage ceiling, the pension share that is computed on the ceiling even when the fund is computed on full basic, ESI’s contribution period, a state’s professional tax slabs. There is exactly one copy of it in this codebase, because two copies of a threshold is two chances for one to be a year out of date — and the payslip that results looks entirely normal while short-paying somebody.
What a school actually gets wrong is not the tax. A teacher takes four days and two are unpaid; somebody types “2” into a spreadsheet from a leave register in another room, and nobody who sees the payslip afterwards can tell whether it is right. Here that number is read from the leave the school already recorded — the same leave the duty roster refuses to book people during. Correcting a leave application before the run changes the payslip, which is what everybody always assumed was happening.
It is counted as dates rather than as lengths, so two overlapping applications are one day off work and not two. A day the school was shut inside a stretch of unpaid leave is not a day somebody failed to come in — docking it is the arithmetic error every manual payroll makes, and the person it happens to notices.
The month is previewed before anything is written, and a run with problems in it does not go. Somebody with no salary structure and somebody whose leave nobody can classify are both named, not skipped, because a run that quietly omitted three people would look complete and the three would find out on the day the money did not arrive.
Once run, every figure is stored rather than recomputed. Correcting a leave record in October does not change what somebody was paid in August — the payslip in their hand is the record, and a screen that disagreed with it would be the screen that was wrong. Reopening a month is its own decision with its own reason on file, and it is refused once the money has gone.
A behaviour note is written for a colleague, read by a parent, and occasionally read out at a hearing. So an entry separates what happened from what was done about it: the first is a fact a school can stand behind and the second is a decision it has to justify, and one “notes” box turns both into a single accusation a parent reads at once. There is no field rating a child as a person.
It records commendations too, and they come first on the list. A log that only holds incidents makes every child in it look like a problem, and a teacher who only ever opens it to complain stops opening it. A file opened five minutes before a difficult conversation shows the whole child.
Two sections of the Right to Education Act 2009 are encoded rather than documented. Section 16 — no child admitted may be held back or expelled until they complete elementary education — so expulsion is refused for classes 1 to 8, with the section number in the refusal, because “not permitted” tells a head teacher nothing they can check. Section 17 prohibits physical punishment and mental harassment, so nothing on the sanction list is either, and the free text is checked as it is typed — a school that has recorded a caning has written its own evidence.
That check has to be right in both directions. “The ball hit the window” and “he pinched another child’s pencil” must pass, because a guard that fires on lawful sentences is one teachers learn to write around — and the sentences they write instead are vaguer than the ones it blocked.
Nothing is deleted. An entry that should not have been written is withdrawn, with the reason beside it and the original text intact, because the first thing anybody asks of a file is whether it says what it said last year. And nothing reaches a family unless an administrator chooses to show it: an entry in the words a colleague uses, arriving on a parent’s phone unannounced, is how a school stops writing anything down at all.
A teacher sets an essay due Friday. So does the science teacher, and the maths teacher, and none of them knows about the others — because the only place that information exists is in thirty children’s diaries. Friday is three assignments, the children are up until midnight, and all three teachers believe they set a reasonable amount of work.
This screen puts that number next to the date field, live, as the teacher picks it: 6 A already has three pieces due on the 21st — Maths, Science and Hindi. Named subjects rather than a count, because a teacher knows which of those they can ring about. It is weighted, so a revision note does not cost what a project costs.
And it warns rather than refuses. A teacher who knows about the other three and wants Friday anyway has a reason, and a system that overrode them is a system they route around by writing it on the board instead — where nothing can count it at all. But nobody gets to not know.
Work due on a day the school is closed is refused, from the same closure list the duty roster uses, because the child who turns up with it is the one who did it. Missing and late are different words: a child who handed in on Monday what was due on Friday did the work, and folding both into “not submitted” is how the one worth a conversation stops being visible. Nobody counts as missing until the day has actually passed.
Parents see it on their own page, narrowed by the same function the teacher’s screen uses, with what is outstanding first and the instructions in full — a heading alone is a child asking their parent what it means.
The module exists to answer one question, asked once a night: is every child accounted for? Not present — accounted for. A child asleep in bed and a child signed out to their uncle until Sunday are both accounted for, and the one who is neither is why hostels take a roll at all.
So there are three states and never two. A register of present and absent makes a signed-out child absent, and absent is what forty children are on any weekend — the one child nobody can explain then sits in a list of forty and the warden scans past them. The screen leads with the number of children not accounted for, because it is the only figure on the page that means somebody has to go and look.
A gate pass names who is collecting the child and carries their number. A child released to nobody in particular is a child gone, and a pass with no name on it tells an inquiry nothing. The return date is required: a pass that cannot be overdue is a child nobody will ever be asked about. And a pass beats a tick — a child signed out on Friday whom somebody ticked in on Saturday by habit is not in the building.
A boys’ block takes no girl and a girls’ block takes no boy. There is no override flag, no reason field and no administrator exception, because the moment one exists it gets used on a busy evening and the school has no answer at the inspection. A child whose sex is not on their record is refused with that reason rather than a flat no — “we do not know” and “no” are different sentences, and the first one has a fix.
One bed holds one child, decided inside the transaction that writes it, because two wardens allocating the last bed from two screens is how a child ends up sleeping somewhere nobody wrote down — and the roll call that would catch it is hours away.
A title is the book; a copy is the physical object with an accession number stamped in it, and a loan is against the copy. “One of our four copies is out” is not something a librarian can act on; “04412 is out, to Meera, since the 3rd” is. The ISBN is check-digit validated, because a mistyped one splits a book into two catalogue entries and the shelf then reports one available when four are there.
An accession number is permanent and never reused — not after a book is lost, not after one is withdrawn. Reuse it and an auditor counting 1,200 accessions against 1,140 books cannot tell a reissued number from a missing one, and the stock register stops being evidence of anything. Lost and withdrawn copies stay on the shelf list with the date they left.
Fines are worked out, never stored, and stop at what the book cost. A fine larger than the book means the school is better off if the child never brings it back, which is not a rule any school operates. The amount is shown before the book is taken back, so nobody is left holding a book and announcing forty rupees to a child with none.
Reservations are a queue in the order it was joined, and a book somebody is waiting for cannot be renewed — without that, the reader who waited three weeks is behind the reader who already has it and simply keeps it. A returned book with a queue behind it goes straight onto the hold shelf rather than back into the stacks.
Two librarians at two terminals on a Monday break is the normal case, not the edge one, so what is on the shelf is re-read inside the transaction that lends it.
The thing that used to go into a bag and arrive as pulp on Friday. Written once, addressed to everybody, to one class, or to a named list of children, and on the portal of every parent it reaches from the day it goes up until the day it comes down.
Who it reaches is written on the notice rather than filtered on the way out, and one function decides — the same one the school’s own screen previews with, so a notice cannot appear in a preview and not in a portal. A notice addressed to a class the school does not have is refused, because otherwise it goes to nobody while every screen reports it as sent, and the school waits for a reply that was never coming.
Blank end dates become thirty days, not forever: a portal still carrying last February’s sports day is one parents stop opening, and then they miss the one about the fee. Marking a notice urgent puts it above everything else a parent is looking at — including money owed — and for that reason it must carry the day it comes down. An emergency that does not end was not an emergency.
Nothing is deleted. Taking a notice down clears it from every parent’s page and keeps the record, because parents act on notices and a school asked “did you tell us?” six weeks later needs the notice, not its absence.
A parent signs in and sees their own children: attendance with the days absent listed rather than a percentage they cannot check, the marks from examinations the school has published, what is charged and what is still owed with every receipt, and which bus their child is on — which stop, at what time, and the attendant’s number rather than the driver’s.
They see nothing else. Not the class list, not another family’s fees, not a teacher’s note. A parent’s login is not a small member of staff: it carries its own kind of access that is not on the staff ladder at all, so there is no role it could be mistaken for. Somebody who pays the fees and is not the parent — a grandparent, an employer, a trust — can be given the money and only the money.
And there is nothing on it to click that changes anything. No form, no upload, no message thread. A parent who spots a mistake is shown the office’s number, because a correction belongs in the school’s own records and a portal that wrote into them is a portal the school could not trust.
A school bus needs a permit, a fitness certificate, insurance and a pollution certificate, and each expires on a different day at a different office. The fleet list opens on what has lapsed and what lapses inside a month — not on a grid of registration numbers. A document nobody has entered is its own line, because “not recorded” and “expired” are different sentences to the person chasing it.
Routes are stops in the order the bus drives them, with the morning and afternoon times kept apart. Capacity is the number on the permit and it is refused, not warned about — counted inside the transaction, so two clerks allocating the last seat from two screens cannot put a child on standing. A bus whose papers have lapsed takes no new children until they are renewed.
The attendant carries the roll: stops in road order, the children at each with their class and a guardian’s number, and a tick box. A stop with nobody at it today still appears, because the bus still passes it.
The driver signs in on a telephone and sees one thing: the bus they took out and the children allotted to it this morning. Not the fleet, not the other routes, not a home address, and not one guardian’s telephone number — a driver’s telephone spends the day on a dashboard, and it is the least physically secure account a school will ever issue.
Every child is marked on and marked off. Nobody can be marked off a bus they were never marked onto, and the same tap arriving twice because the network dropped is refused rather than counted. The number still aboard is the largest thing on the screen.
The trip does not end while a child is marked as on the bus. Children have died in parked school buses in India, and every one of those cases is the same shape: a child got on, was never marked off, and the vehicle was locked for the day. The driver is named the children still aboard and told to walk the aisle. There is a way past it — a system with no override is one drivers defeat by marking everybody off at the depot, which destroys the record entirely — and it costs a typed sentence that reaches the office the same day, with their name on it.
The position comes from the telephone’s own satellite fix, stamped with our clock rather than the device’s, and a reading no bus could have produced is thrown away rather than smoothed into a line on a map. The office board is ordered by what is wrong — a bus that has gone quiet with children aboard is at the top of it, whatever its registration number.
Where a child was, minute by minute, is kept for ninety days and no longer. Nothing in law asks a school to hold a map of a child’s movements, so a request to erase one is granted outright.
When a driver marks a child absent from a stop, the office is told in the same minute rather than when the bus gets back. A child who left the house at twenty past seven and was not at the stop at half past is either at home or somewhere between the two, and only a telephone call to the house can say which.
Most of these are not emergencies, and a list that treats them as if they were is a list nobody reads by November. A child whose family telephoned the office before eight, a child marked excused, a child already in school: each is shown as accounted for, with the reason beside it, and nobody is telephoned. What is left at the top is the child nobody can account for.
The afternoon is a different question from the morning. A child missing from a stop on the way in is presumed to be at home, and the transport office rings the house. A child who did not get on the bus home was in the school an hour ago and is not now — that one goes to the school office, because the thing to do is walk the building, and telephoning a parent a mile away instead does not send anybody to the library.
A guardian is written to at once where the school has switched it on, and the message crosses quiet hours because a pickup run can start before seven. It says what was recorded rather than that a child is missing, which is a conclusion nobody has reached. The office’s own list is shown whether the messages are switched on or not.
There is no way to tick a row off. It goes when somebody records what was found out — at home, collected, or found — against their own name. A tick that only means “I have seen this” is how a list becomes a thing people clear every morning without reading, and the one they clear without reading is the one that mattered.
A child from about eleven upwards gets a login of their own: their timetable, what homework is set and when it is due, their own attendance with the days listed, and any results the school has published. It opens on a phone in the evening and answers the question a child actually has, which is what is due tomorrow.
There is nothing about money on it, and no setting to put it there. Children in India are still sent home, made to stand outside a classroom and named in front of a class over unpaid fees. A screen that shows a twelve-year-old what their family owes has taken the school’s collection problem and made it the child’s, in private, with nobody there when they read it. A parent’s login carries the fee ledger. A child’s does not, and one email address cannot hold both.
Nor is there a conduct record. A teacher who knows the child will read the note writes a different note, and the first one to disappear is the quiet early concern about a child’s welfare — so the note stays where it was written, for the people it was written for.
And no child is shown where they stand against the others. A school may publish a result; it does not publish a league table to every child in the building. Their own mark is theirs. The class average is not beside it.
A login is not offered to a six-year-old, because a login given to a child that young is a login held by their parent with the child’s name on it — so everything done with it is recorded as the child. The school sets the age.
The person on the gate gets an account of their own, and it opens onto one screen. Not a class list, not a fee ledger, not a child’s home address — the gate needs a visitor book, and until this existed a gate account was ordinary staff and could read all three.
Somebody at the gate is written in with the kind of identification shown and never its number. A visitor book full of Aadhaar numbers is a database of national identifiers sitting in a school office; “driving licence, seen” answers the question a book exists to answer without keeping what could be stolen.
Collecting a child is the part that is not clerical. The guard searches for one child — a search, not a roll — and is shown a name, a class and a photograph. The people authorised to collect that child are never sent to the gate at all: the check happens on our side, and a refusal names nobody, because a refusal that said who was on the list would teach the next person who to claim to be. A refused collection is recorded even though no visit is, and the office reads those; the guard who made them cannot.
The school already records attendance, the health room, homework, the bus and the conduct book. Each lives in its own screen, read by a different person. So a child who has quietly started arriving late, begun turning up at the health room twice a week, stopped handing in homework and missed the bus four times is visible to four people who each see one quarter of it, and none of whom is alarmed. Nothing in any school system joins them up. This does.
It is not prediction and it is not scoring. There is no number out of ten anywhere in it — a number attached to a child becomes a label, a label follows them between teachers and then between schools, and the child never sees it and cannot argue with it. What comes out is a short list of things that changed, each with the two figures it changed between: “attendance has gone from 94% to 61% in the last three weeks”.
Every child is compared only with themselves. Never with their class, never with a cohort. “Below the class average” is a fact about the other children dressed up as one about this one. And it never says why: the inference is a conversation between an adult and a child, and a system offering “possible causes” would be replacing the one part of this that has to be human.
Fee arrears are never a signal. What a family owes is between the school and whoever pays and says nothing about the child — and counting it would make a child from a family in difficulty permanently more visible than one from a family that is not, which is the opposite of the point.
Nothing is written down. There is no field on any child’s record. It is worked out when somebody opens the screen and never stored — so there is nothing to leak in an export, nothing to appear on a transfer certificate, nothing for next year’s teacher to read before meeting the child. The moment a school stops looking, the list stops existing.
Two things have to have changed before a child appears at all, because one thing is a bad fortnight and a screen that raises somebody every bad fortnight is switched off within a month — taking with it the case it would have caught in March. A child who joined three weeks ago never appears, because they have no earlier self to be compared with. And the conduct book alone never raises anybody: a child who already has notes attracts more notes, and feeding that back as concern would tighten the loop around the children already least well served.
The usual answer is nothing, and it is written to read as an ordinary week rather than an empty screen. It is open to the office rather than to every teacher.
Every school messaging system reports the same thing: Sent to 380 families. It is a true sentence about the software’s behaviour and a useless one about the outcome, because the number that matters is the other one.
A school sends “closed tomorrow, flooding” to four hundred families. Three hundred and eighty arrive. Twenty do not — a changed number, a full mailbox, a parent who never joined WhatsApp. The screen says Sent. Twenty children arrive at a locked gate in the rain, and the school finds out at eight the next morning.
This one reports the families, by name, and refuses to call the send complete while one of them is missing. No tick, no green, and the list stays on the screen — because the next thing anybody does is pick up a telephone, and that list is what they work down. Twenty calls is an hour. A count is nothing you can act on.
Families who could never have been reached at all are counted among them rather than quietly left out of the total: no number on file, a number that is not ten digits, a parent who asked not to be written to, a family not on WhatsApp. From the child’s side there is no difference between a message that failed and one that was never attempted.
Nothing ordinary reaches a family between nine at night and seven in the morning. Fee reminders at 23:40 are how a school teaches parents to mute it, and a muted channel is one that fails silently on the day it matters. Messages written in the evening are held, shown as held with the hour they will go, and sent together in the morning — not trickled out from two o’clock.
Exactly one thing crosses that line, and only an administrator can set it. A child hurt, a bus that has not arrived, the school closed tomorrow. Not inferred from the subject — declared, deliberately, by a person with the authority to wake four hundred households. In a system where every teacher can mark a message urgent, every message is urgent within a term, and the quiet hours have quietly stopped existing.
Who a message reaches is read from the child’s own record at the moment of sending, never from a list somebody prepared earlier. A guardian removed after a court order is gone from the record immediately and from an exported spreadsheet never. And a child who has left the school is not written to, which sounds obvious and is the commonest thing these systems get wrong.
Each message is written down before it is sent rather than after, so a send that falls over halfway leaves evidence instead of silence — and the log shows what was handed over, what was delivered, and what was read, because “we sent it” and “it arrived” are different claims and only one of them answers a complaint.
Every school arrives holding a spreadsheet. Three hundred children, forty staff, a fee structure. Typing it in is a fortnight nobody has, and it is the single thing that decides whether a school that signed up in June is running in July or has quietly stopped answering the telephone.
Nothing is written until every row is clean. A file of three hundred rows with a mistake at row 187 usually ends one of two ways: the first hundred and eighty-six go in and the run stops — leaving a state nobody can describe, some children on the roll and some not — or the whole file is refused for one typo. Neither is what anybody wants. You get every problem at once, with the row numbers your spreadsheet shows, so you fix them in one pass.
And nothing is guessed, which matters more than the refusals. The dangerous failures in an import are not the ones that stop; they are the rows that go in wrong and look right.
3/4/26 is the fourth of March in one country and the third of April in another. Both are real dates, so nothing in the file can settle it — and an admission register shifted by a month is not noticed until a transfer certificate is wrong three years later. So it is refused, and you are asked once which order the file uses, rather than three hundred times. A date only one reading can explain goes straight through, because asking somebody something the file has already answered is how a form gets abandoned.
A column called Mobile 2 is named, never assumed into the guardian’s number — that is a school ringing the wrong number for two years, and nobody ever reports it because nothing looked wrong. Two columns that both look like the admission number stop the run: one of them is wrong, there is no way to tell which, and taking the first would make the answer depend on how the spreadsheet happened to be saved.
You see what it will do while it is still about to. A hundred and eighty new, forty changed — and for each of those, which fields change. An import that reports afterwards is one somebody has to undo, and there is no undo.
Running the same file twice does not create everybody twice, because the key is your admission number rather than something the database made up — and everybody imports twice, because the first one had a mistake in it. An update merges: a child’s photograph, house and fee ledger survive a spreadsheet that never mentioned them. And if the number of records about to change is not the number you approved — because a colleague imported something else while you were reading — it stops and tells you both numbers.
A school loses cash three ways, and none of them is clever. A receipt is issued, the parent leaves, and the receipt is voided — the cash stays in a pocket and the books balance perfectly. Cash is collected and banked a little short, by one person, for months. A concession is granted that nobody asked for, and the family quietly pays the difference.
Every accounting package sold in this market will print you a void report. What none of them does is the thing that makes a void report useful, which is to ask what the number should be compared with.
A fixed threshold is worse than nothing. Admissions week produces voids at ten times the ordinary rate for entirely honest reasons, so a threshold set low enough to catch anything fires on the whole office every August and is switched off by September — taking with it the case it would have caught in November. Set high enough to survive August, it never fires at all.
So every comparison here is against the same institution over the same days. A week where everybody’s voids triple is a week where something happened at the counter. A week where one person’s triple and nobody else’s move is a different sentence entirely, and it is the only one this raises. The comparison deliberately excludes the person being examined, because somebody responsible for most of the voids otherwise raises the very average they are measured against.
And it says when the receipt was voided. Four minutes after issue is a correction made at the counter with the payer still standing there. Ninety minutes after issue, the payer is at home believing they have paid, and the only person who knows the receipt no longer exists is whoever voided it. Those are different acts and this counts them separately.
Nothing it produces is written down, anywhere. Not into a document, not onto the receipt, not into the log. A stored finding about a named person outlives its own correction: the clerk explains the fourteen voids on Tuesday, the explanation is accepted, and the record saying “fourteen voids, well outside the counter” is still there in March when somebody is deciding who to promote. There is nothing to retract because there is nothing kept.
Every sentence is written on the assumption that it will be read out to the person it names — because it will be. So none of them says what it thinks happened. They say what was counted, over what, against what everybody else at the same counter did. What it means is for whoever walks over and asks. And below a hundred receipts it compares nobody at all, and says so, because a page that turns four colleagues into suspects on a morning’s data is one nobody should open twice.
Every school system in this market prints the average for each question. A question the whole class got wrong shows up as a low number, and there it stops — because a low number is where the software’s understanding ends and the staffroom argument begins.
A question nobody could do is one of three completely different things, and the average cannot tell them apart. It is a topic that was not taught well enough, or it is a badly written question, or the answer key is wrong. Each has a different remedy: reteach the topic, rewrite the question, or correct thirty scripts before the report cards go out. Getting it wrong the third way means a school stands behind marks it should not.
One number separates all three, and it is the one nothing here computes: whether the students who did best on the paper did best on that question. If the strongest scripts got it right and the rest did not, the question worked and the topic needs going back over. If everybody did equally badly, the fault is in the wording. And if the strongest scripts did worst — that is an answer key entered wrong, and it is checked before anything else on the screen is read.
It is ordered by what needs attention rather than by question number, because a paper is read in number order exactly once, when it is set. Each question carries the topic it belonged to, so what comes out is not “question seven is weak” but “simultaneous equations” — which is the sentence a head of department can act on.
Below twenty scripts it shows nothing at all, and says so. On a dozen scripts the comparison is three against three, and a figure that moves by a tenth because one child had a bad morning is a figure somebody will act on anyway. A confident wrong answer is worse than none.
Entering marks question by question is optional and additive: a school that records a subject total carries on exactly as before, and a department that wants to know what its paper did enters one sheet for one subject. It never writes back to the subject mark. Two routes to one figure is two figures eventually, and the number on the report card is the one the school stands behind.
Every school system has alerts. They are cleared every morning without being read, and the first one cleared without being read is the one that mattered. This one has no dismiss button. An item leaves the list when the thing behind it is fixed — the fault is closed, the fridge comes back into range — and never because somebody looked at it. You can say “I am on this”, which records your name, sinks it below the things nobody has taken on, and lapses after four hours, because “I am on it” said at nine in the morning is not still true at four in the afternoon.
And nobody is shown what they cannot act on. A cleaner shown a vaccine fridge above eight degrees learns to ignore the indicator, and the next thing it shows them is something that matters. So every item carries the job it belongs to, and the same duty list that decides which screens somebody may open decides which items reach them. An item nobody owns is not hidden — it goes to administration, because an item with no owner is itself the problem.
The urgencies are about when somebody has to move rather than how serious the thing is. A death that has not been reviewed is grave and is not urgent; a fridge at nine degrees is neither grave nor complicated and somebody has to stand up now. Sorting by seriousness puts the first above the second, which is exactly how the second gets missed.
Nothing here decides what is wrong. Every check calls the same function the module’s own screen calls — not one threshold is restated. A second opinion about whether a fridge is out of range is two screens disagreeing about a fridge, and the one people believe is whichever they opened first. And when a check cannot run, the screen says so in place of the reassurance it cannot give: a short list because a read failed looks exactly like a short list because nothing is wrong, and those two must never look the same.
A timetable is built from a request: which classes take which subjects, how many periods a week each needs, and who teaches them. That request is where timetables become impossible, and it is where nothing in this market looks.
Two sums decide whether a week can exist, and both usually arrive too late. The first is simple — a class cannot ask for more periods than its week holds — and most systems will tell you, once you press save, naming a class you then scroll back to find. Here it sits under each class as it is typed: “27 of 30 periods a week · 3 free periods left in the week”, becoming “9 A asks for 31 periods a week and the week has 30” the moment it stops being true.
The second is not checked anywhere, by anything, because it cannot be seen from inside one class. Give a teacher nine periods in one class, eight in another and eleven in a third. Every class is comfortably within its own week. Every check passes. The plan saves, the generator runs, and twelve lessons come back unplaced — twelve separate sentences saying the teacher was busy — and the plan was impossible before anybody pressed anything.
So the ceiling is worked out per teacher and shown against what they have been given: “Mr Rao is down for 36 periods a week and can teach at most 25 — the limit of 3 periods in a row. At least 11 will not be placed.” The ceiling counts the periods they are actually available for, their own daily limit, and what the no-long-runs rule leaves room for — and it is deliberately generous. It is what they could teach if every other constraint fell their way, so a teacher over it cannot be placed. A screen that cried wolf about a week that would have built is a screen switched off in the first week.
It never refuses. A head of department may be about to hire, or about to move a class, and knows things the program does not — so an impossible plan saves, after being told plainly what will not place. The refusal on save and the warning while typing are the same sentence from the same function, because two wordings of one piece of arithmetic read as two different problems.
Every school system holds a timetable. A head of department still builds one on a whiteboard over two or three weeks each June, moving magnets, because the constraints interlock: a teacher cannot be in two rooms at once, physics needs a double period in the one laboratory, the part-time Sanskrit teacher leaves at noon on Tuesdays, and nobody should teach five periods in a row. This builds it.
And when it cannot, it says exactly what stopped it. That is the part that matters, because a hand-built timetable always contains compromises and the head of department knows which ones they are willing to make. A program that answers “these constraints cannot be satisfied” is thrown away by Wednesday. This one says “Physics 8B — a double period could not be placed: the teacher is teaching another class then, in every remaining slot”, naming the reason that stopped it most often rather than the first one it met. Somebody moves one thing and runs it again.
The same inputs always give the same week. No randomness anywhere — so when you change one subject and rebuild, whatever moved is what you changed. A tool whose output shifts on its own is one nobody trusts with three weeks of their work.
Free periods land at the end of a class’s day rather than the middle, because a gap at period four is thirty children with nowhere to be. Subjects spread across the week instead of stacking on Monday. A teacher’s load spreads across their days rather than onto one morning, and the finished week shows what each teacher ended up with — the number a head of department checks first, and the one that decides whether a timetable survives contact with the staffroom.
Building and publishing are separate. You press build a dozen times; the school must not wake up to the eleventh attempt. And the week that publishing replaces is kept, because a school that publishes a bad timetable on Saturday needs Friday’s back on Sunday — and “build it again” is not the same timetable once the plan has been edited a dozen times.
And they can be put back. Every kept week is listed by what it would change against the week the school is using now, counted in lessons — because two versions kept the same afternoon are identical by date, and the question is never “when”, it is “which one is the week before I broke it”. Restoring obeys exactly the rules publishing obeys, and keeps the week it replaces in its turn, because the commonest second thought after a restore is wanting back the thing that was restored over. A class admitted since that week was kept has no timetable in it; that class is left exactly as it stands, and you are told so by name — a head of department who is not told will believe the whole week went back.
A week edited by hand afterwards is checked by the same rules, so the two never disagree about what is legal. Publishing one that puts a teacher in two rooms at once is refused and names them — and can still be done deliberately, because sometimes a head of department knows something the program does not.
A school health room is usually one person with a cupboard, and the failure is never exotic: a child says their head hurts, somebody gives them a tablet, and nobody knows the child is allergic to it or that their mother gave them the same tablet an hour before school.
Nothing is given without a consent the school holds, naming that medicine, and nothing at all against the child’s allergy list. The allergy check comes first and beats the consent — a form signed two years ago does not survive an allergy recorded last week — and it is a refusal rather than a warning, because a warning is a thing somebody clicks through while a child is crying in front of them. A consent given over the telephone can be recorded on the spot, with who took the call, because the alternative is a nurse holding a child and a bottle while somebody looks for a form.
A knock to the head does not close by sending a child back to class. A child can be entirely fine for two hours and then not be, and the person who needs to know is the parent — not at four o’clock and not by note. The visit stays open until somebody records that the family was told. The same applies to anything given at all: a parent who finds out at bedtime that their child was given a tablet has been failed by the record rather than by the medicine.
A child sent home leaves with somebody on their own record — checked by the same function the gate uses, so the answer cannot depend on which door they left by. The refusal names nobody, because a refusal that named the authorised people would teach the next person who to claim to be.
And a child who comes to the health room seven times in a term is put in front of somebody who can ask. That is not a diagnosis. A child coming that often is telling the school something, and it is very often not about the stomach they came in with.
The register is kept seven years. An injury at school becomes a question years later — an insurer, occasionally a court — and the note written on the day is the only account that exists.
A meal is not recorded as served until a portion has been kept and an adult who did not cook it has tasted it. In July 2013 twenty-three children died in Dharmasati Gandaman, Bihar, after a school meal was cooked in oil stored in a used pesticide container. Both halves of that rule come from what followed: somebody tastes the food before children eat, and a portion is retained so that if children fall ill there is something left to test. Here they are conditions of recording the meal, not paperwork about a meal already eaten — and the cook cannot be the taster, because one person cooking, tasting and signing is a signature rather than a check.
Samples are held for forty-eight hours. Twenty-four would routinely be up before anybody knew to ask: illness from a lunch shows itself that evening or the next morning.
Consumption is measured per head, and the head count is not the kitchen’s to type — it comes from the hostel’s own bed allocations. A kitchen that reported both the rice and the number of mouths could make the ratio anything it liked, and the ratio is the entire control. Twelve hundred grams of rice between twelve residents is a hundred grams each; against a plan of a hundred that raises nothing, and fifty grams of dal against a plan of thirty raises a question with the number in it.
Under-issue is said before over-issue. Over-issue is money; under-issue is residents being fed less than the hostel told their parents they would be, and those are not the same size of problem however similar the arithmetic looks.
The store keeps grams and millilitres as whole numbers, because a store holding 2.4 kg as a decimal accumulates a drift that looks exactly like small-scale pilferage and then nobody can tell which it is. An issue larger than the shelf holds is refused rather than allowed to go negative. The menu is a repeating cycle dated by arithmetic, so it is written once rather than retyped every week until November, when it stops being typed.
“Cleaned today” hides the eleven o’clock clean that never happened, and the eleven o’clock clean is the one that matters: a school toilet cleaned once at seven is unusable by lunchtime, girls stop drinking water, and then they stop coming. Each place carries the times it is owed by, and the board says which windows were missed rather than a percentage.
Every entry is stamped with our clock. There is no field for a time, because a time the person recording can choose is not a record of when anything happened. A run of entries written down in one sitting — twenty places in four minutes at the end of a shift — is put in front of the person who runs the building, in plain words. It is not refused: refusing would move it one step earlier and the sheet would look better while the building did not.
The cleaner is the only person who enters every room every day, so what they noticed is worth more than the tick. A door that will not lock is treated as urgent — that is a safeguarding matter, not a carpentry one — and reporting the same fault again does not restart its age, because a fault reported eleven times over a term is the evidence that nobody was reading the list.
Hosted, backed up, monitored and updated by us. Certificates, upgrades and capacity are not on anybody's list at your end.
Everything listed above is in production: a child admitted, marked present, examined, reported on, and their fees receipted — with the receipt printed for the parent.
Everything this page describes is written and live. There is no paragraph here listing what the school system does not do, because there is nothing left on that list — and a page that kept one out of habit would be as misleading as the page that once claimed three modules it did not have.
An earlier version advertised transport, a parent portal and payroll when none of them existed. It was wrong, and it said so here for as long as it was. All three have since been written; this paragraph stays as the record of that, and the next thing we have not built will be named here before it is sold.
Your terms, your fee heads, your grading. The system matches the school; the school does not rearrange itself around the system.
Structure, roles, rates and branding. Configuration rather than a rewrite, which is why this takes weeks and not quarters.
Existing students, staff and balances imported and reconciled with you before anybody relies on them.
On your own address, with your staff trained on it, and us reachable when something is not obvious.