Hours down the side,
rooms across the top.
Every working language school timetable, however it is stored, is a grid with the hours of the week down one side and the rooms — or, for an online school, the simultaneous live-class capacity — across the top. A cell is a slot: a room, at an hour, on a day. Everything else about the timetable is a decision about what goes in a cell. Seeing it this way before you start does two things. It makes the scarce resource visible, because the 4–7pm rows and the Saturday-morning rows are where every class wants to be and there are only so many cells in them. And it makes the empty cells visible, which is where growth happens.
Draw the grid for one week of the term, not for a day, because the same room at five on Tuesday and five on Thursday is one slot for a twice-weekly class. For an online school, the columns are "live classes we can run at once", which is limited by teachers and by the person who can step in when a link fails, not by walls. Most small online schools can run two or three concurrent classes well; the number is worth deciding rather than discovering.
Constraints, cohorts, slots, teachers —
then publish.
The order matters more than the tool. Schools that place classes first and look for teachers afterwards build timetables that cannot be staffed; schools that place teachers first and look for students afterwards build timetables nobody can attend. The sequence that works runs from the hardest constraint to the softest.
1. Mark the student windows on the grid. Shade the cells your students can actually attend: after school and Saturday morning for children and teenagers, early morning, lunchtime and evening for working adults, daytime for the few groups that have it. Everything outside the shading is a cell you will struggle to fill, whatever you put in it.
2. Place the level cohorts you expect to run. From last term's numbers, the waiting lists and the enquiries, list the levels and formats you expect to fill: two B1 teens groups, one A2 adults, one exam-prep group. Give each a slot inside the shaded cells, spreading the same level across different days so that a family with a clash has an alternative.
3. Assign teachers against their availability and their load. With the availability grid collected in writing before planning — the third article covers this — assign each slot a teacher, watching two totals: contact hours per week and number of different levels. A teacher covering three levels prepares three things; a teacher covering seven prepares seven and leaves at Easter.
4. Check the rooms, the breaks and the collections. Two kids' classes ending at the same minute in adjacent rooms produce a corridor of parents and a car park of double-parked cars; stagger them by fifteen minutes. Give teachers a break between a ninety-minute class and the next. Check that the reception is staffed at every collection time.
5. Publish before enrolment opens. Level, days, times, teacher where known, price, start and end dates, and the holidays in between. A published timetable is an offer families choose from; a timetable assembled around requests is a negotiation you will lose slowly all term.
Run, merge or cancel:
the numbers, before the pressure.
The decision that most damages a language school's finances is made in the week before term, under pressure, with four real students in front of you and an abstract loss behind them. Take the pressure out by deciding the thresholds now, per format, and writing them where the office can see them. The table below is one school's set; yours will differ, but you should have one.
The arithmetic behind the thresholds is simple and worth doing once, with your own figures. As an illustration only: a group class priced at €240 per student for a twelve-week term of ninety-minute sessions earns €1,440 with six students. A teacher paid €35 per contact hour costs €630 for the eighteen hours, before the room, the materials and the share of everything else the school pays for. At six students the class contributes; at four it earns €960 against the same €630 and contributes almost nothing once the overheads are counted; at three it loses money every week. The threshold is not a policy of meanness. It is the point at which the class stops paying for the school that offers it.
A merge is the humane alternative to a cancellation and it is available more often than schools think. Two neighbouring levels with four students each become one group of eight at the lower level with stretch material for the stronger four — imperfect, but a running class beats a refunded one, and a teacher who can differentiate handles it. Offer the merge with a specific slot and a specific reason, in writing, a week before term. Families accept a merge far more readily than they accept a cancellation on day one.
Set the decision date and keep it. "Classes are confirmed on the Friday before term" tells families when they will know, tells the office when to act, and stops the four-student class drifting into week two on hope. On the decision date, every slot is confirmed, merged or cancelled, and every affected family is told the same day with their alternative.
A slot that did not fill
is a signal, not a failure.
Keep a waiting list per slot, not per level, because the hour is what families are waiting for: a parent who could not get Tuesday at five is not helped by Saturday at nine. A slot with three on the waiting list and four enrolled is a slot that should have run with seven, and next term it will, if you open it at the same time and tell the three first. A slot that filled in a day is a slot that wants a second group beside it — same level, same time, a second room or a second teacher — and the waiting list is where the second group comes from.
Read the lists at the end of every term as a demand map: which hours fill, which levels grow, which teacher's classes have lists and which do not. The map is the most reliable evidence you have about where to put the next hire and the next room, and it costs nothing to keep.
Where the timetable lives
decides how much it costs you.
A timetable in a spreadsheet on the owner's laptop is complete, accurate and invisible, and every question about it is a message to the owner. A timetable on a wall chart is visible in the building and nowhere else. A timetable in a platform where each class has a teacher, a level and a roster is the same record seen from three sides: the teacher sees their classes, the student and the parent see theirs, the office sees everything including the gaps. A change is made once and appears everywhere.
On SprintUp, classes live in the campus with their teacher, level and roster, students see their own classes in the portal, and for online sessions the platform generates the live-class link rather than someone pasting one into a message. What it does not do is solve the timetable for you; no software knows that your strongest exam teacher will not work Fridays. The solving is the work of this article. The publishing is what the platform is for.