How-to
Preparing a school for timetable generation: the data, the mistakes and the five decisions
The program can only be as good as what you give it. Most disappointing timetables are not a failure of the solver; they are a data problem that the solver faithfully optimised. This guide is the half hour before the first run.
The two-minute checklist
Eight things that have to be true before the generator can do its job. Walk the list once; it saves a day of wondering why a lesson stays unplaced.
Every lesson that must be placed exists
Course → turn → group → teacher. A lesson that has no teacher, or no group, is not a lesson the generator can place.
Teachers and groups have the right hours per day
The daily limits are hard rules. A value on a teacher’s own screen or a group’s own screen always wins over the default on the Generate tab.
Rooms have their seats and their equipment
A lesson needs a room that carries every property the course asks for. A computer lab that is not marked as one is a room the lab lesson cannot use.
Home rooms are set where they matter
If a teacher should always teach in “their” room, it is set as that teacher’s default room; the gap solver then has something to prefer.
Electives are marked as electives
Only then can the solver keep them at the edge of the day, where the pupils who do not take them are not left waiting.
Lessons that run together are linked
Two turns that must be taught at the same hour are linked turns. Unlinked, they land at different times and the pupils have two simultaneous lessons that are not.
Blocked times are entered as reservations
Meetings, days off, an unavailable gym: no generator can guess them. What is not entered is free in the generator’s eyes.
Save a copy of the file
Generating changes a lot. A copy from before the first run is the cheapest insurance there is.
The data mistakes we see most often
Each of these looks, in the result, like a solver that did a poor job. None of them is.
| Mistake | What the generator does with it |
|---|---|
| A course has no teacher assigned | The lesson stays unplaced, or is placed with nobody to teach it. |
| A room lacks a property the course requires | That lesson cannot find a room and is counted as not placed. |
| Two lessons that run together are not linked | They are placed at different times; the pupils then have two lessons that were meant to be simultaneous. |
| Teachers’ unavailable days are not entered | The generator happily gives the teacher lessons on a day he is not at school. |
| The group is larger than every room | No room fits. Split the group or add a bigger room. |
| Electives are not marked as electives | They land in the middle of the day and leave the other pupils waiting. |
| The hours per week of a course do not match the curriculum | The timetable is perfect for the wrong curriculum. |
Five decisions to make on paper
Before opening a single setting, answer five questions. Each one becomes a setting later, and a setting decided on paper is a setting nobody argues about in the staff room.
| Question | Setting |
|---|---|
| When does the school day start and end? | Working hours on the Generate tab; Extended working hours only for lessons that did not fit. |
| Is there a day that ends earlier — a short Friday? | Last hour of the day, one field per weekday: a school hour counted from the start of the working hours, kept by the gap solver. |
| From which hour is it “afternoon”, and how many afternoons may a class have? | Afternoon starts at hour and Afternoon days per class and week, in the Gap optimisation window. |
| How short may a teacher’s day be? | Min teacher hours per day, in the same window. |
| Do teachers teach in their own rooms? | Teacher’s home room – weight, and the default room on each teacher’s screen. |
The shape of the day: working hours and the last hour
The Working hours are your normal day, for example 07:30 to 15:10. The generator tries to put every lesson there first. The Extended working hours are an extension used only for lessons that did not fit. Be stingy with the extension: every hour you add invites afternoon lessons, and afternoon lessons are what most schools do not want.
For a school whose days differ there is Last hour of the day, one field per weekday. The number is a school hour counted from the start of the working hours, not a clock time: 1 is the first hour of the day, 9 the ninth, and 0 means no limit beyond the extended working hours. A Friday that ends after the ninth lesson is 9, the other days 14. It is a hard rule of the gap solver, so a school that relies on it keeps Run gap optimisation ticked.
Schools with a strict hourly rhythm switch on Put lectures only on whole hours; institutions whose day starts at 08:15 leave it off. The school edition of the program adds the second shift and a few preferences about the shape of a pupil’s day on the same tab.
Limits, and what zero means
The daily and weekly maxima for teachers and groups are hard rules: the generator never exceeds them. Zero does not mean unlimited — for an hour limit, 0 stops the generator from placing lessons at all. Write a large number for “no limit”.
The daily limits on the Generate tab are defaults; a value typed on a teacher’s own screen or a group’s own screen always wins. Be careful with the group limit: confirming a change there writes the value into every group and replaces the individual values. Mandatory break exists for pupils and teachers separately — after how many lessons in a row the next hour must stay free — and institutions with several buildings limit the journeys between locations.
How lessons are arranged: the switches in four groups
The tick-boxes on the Generate tab change the style of the timetable. None is right for every school; it helps to read them as four questions.
Every field on the tab has a ? button with the longer explanation, the valid range and the default. With the data checked and the five decisions made, the first run is described in generating a school timetable, step by step, and the whole method — preparation, parameters, polishing, troubleshooting and recipes — is the book on the documentation page.
- Where lessons may go. The weekend days open or closed; Teachers come every working day unticked makes the generator fill the days a teacher already works first, so teachers can have whole days off; Scatter generated hours spreads lessons evenly across the week but makes days less compact — the opposite of what most schools want.
- What belongs together. Several sections of one lecture at the same hour, all parts of a block in one room, parallel electives gathered into one common slot, a stable weekly rhythm for part-time courses.
- How days feel to pupils. Whether a 2+2 course may fall on two neighbouring days; in the school edition also a double lesson of the same course on one day, the first hour kept filled, at least five hours a day.
- How careful the generator is about students. Check students: courses/sections makes the generator also avoid clashes for individual students who belong to several groups or choose individual courses. Essential for programmes with many electives; it slows generation down.
Want to see this working?
Book a 45-minute online presentation and we will walk through it against your institution's own scheduling problem.