Academics
Timetables: constraints produce a draft, a person publishes it
A generated timetable is an opinion about a building. It cannot know that the physics teacher leaves at two on Thursdays, or that the hall is unusable during the rains — which is why the review step is the product, not the generator.
What a generator knows, and what it does not
Timetabling looks like a solved problem: subjects, periods, teachers, rooms, constraints, solve. The constraint solving genuinely is the easy part. The hard part is that half of a school's real constraints are not written down anywhere.
- Encoded and reliable: teacher availability, subject period counts, room capacity, class-section structure, maximum periods per teacher per day and per week.
- Known but unwritten: the teacher who takes an early bus, the lab that cannot follow games, the section that should not have double mathematics on Monday, the senior teacher whose free period is by convention.
- Genuinely political: who gets the good rooms, whose free periods land together, which teacher is not given a first period. A solver optimising a cost function will make these decisions silently and hand you a staffroom problem.
So the useful output of generation is a draft that satisfies the hard constraints and leaves the rest visibly open — not a finished timetable that has quietly resolved things nobody delegated to it.
The dry run is the feature
Before anything is saved, the school needs to see what would break. Three checks earn their place, and all three should run against the proposed timetable rather than against the saved one.
- Teacher conflicts — the same person in two rooms in one period. Obvious, easily created by a manual edit, and the reason most schools discover an error on day one of term.
- Room collisions — two sections in one lab. Rooms are usually the constraint a school forgot to encode, so it surfaces late.
- Weekly load caps — a teacher over their agreed periods per week. This one is invisible in a day view and only appears when somebody totals the week, which is exactly what a machine should do.
Show these as a list somebody can work through, with the ability to accept a specific exception deliberately. A school does run over-cap sometimes; what it should not do is run over-cap by accident.
Substitution: ranked suggestions, human assignment
A teacher's leave is approved and four periods need cover. The system knows who is free, who teaches the subject and who has already covered twice this week, and can rank the options in a second.
What it should not do is assign them. Cover is a request to a colleague, made by a person who knows what else is happening that day — and an automatic swap that appears in somebody's timetable overnight is how a school loses trust in its own scheduling system.
The timetable is not only a schedule
Once published, the timetable stops being a plan and starts being a permission structure. It is the most under-appreciated consequence of getting it wrong.
If a teacher's assigned periods determine which sections they can mark attendance for and enter marks against, then an unfinished timetable is also an access problem: a teacher who genuinely teaches a section but is not on its timetable cannot do their job, and a stale entry leaves access with somebody who no longer teaches there. Publishing the timetable and reviewing teaching assignments therefore belong to the same task, at the start of the year.
How this works in Vidyapeeth360
Generation produces a reviewable draft. The dry run reports teacher conflicts, room collisions and weekly-cap breaches before anything is saved, so the school edits a proposal rather than repairing a published timetable. Nothing publishes itself.
When leave is approved, the affected periods open a substitute board with ranked candidates — subject match, availability and recent cover load — and a person assigns the cover. There is no automatic swap, and the assignment is recorded as somebody's decision.
The published timetable feeds the rest of the year. It is one of the sources that decides a classroom teacher's record-level scope, alongside explicit teaching assignments and the homeroom class a class teacher takes without a timetabled period — which is why teaching assignments are an administrator-managed surface rather than something a teacher can grant themselves. Staff can subscribe to their own schedule as a calendar feed rather than reading a grid.
Practically: build the timetable, reconcile it with teacher mapping, and confirm that the people who will mark attendance in September are the people the timetable says teach those sections. That single check prevents most of the first fortnight's support requests.