Your slots and students
Every student is seated in at most one slot a week. At least 4 students. Names of slots must match between the two boxes (case does not matter).
Paste your slots and students, then click Build the timetable.
Result
Every slot
"If flipped" is the change in weekly profit if you did the opposite for that one slot (run a skipped slot, drop a running one) and re-seated everyone optimally.
| Slot | Decision | Students | Capacity | Revenue | Cost | If flipped |
|---|
Seating
| Student | Pays | Slot | Why not placed |
|---|
How it is calculated
Model: for a chosen set of running slots, the best seating is a minimum-cost flow: each student takes at most one seat in a slot they can attend, each slot holds up to its capacity, and the first seats up to the minimum are weighted so that a slot is only valid if its minimum is really met. Which slots to run is then searched: every combination for up to 10 slots (exact), or a seeded local search with swaps and restarts above that (reported as not proven best). Profit is the fees of seated students minus the cost of every running slot.
Not modelled: prices that change with group size, tutor availability and travel between sites, students who want more than one session a week, mixed subjects within a slot, drop-outs and trial periods. Unverified: checked in unit tests against an exhaustive search on 60 random small instances and against the exact answer on 12-slot instances, not against a real centre's timetable. Treat the output as a starting point and check it against students' real constraints.
Common questions
How do I decide which tutoring group sessions to run?
Run a session only if the students you can seat in it pay more than it costs to run, and every student can only sit in one session they can actually attend. That is a matching problem, not a gut call: moving one student from Monday to Tuesday can make both sessions viable. This tool takes your slots, your minimum and maximum group sizes, what each session costs and each student's availability, and finds the most profitable set of sessions and seating.
What is the minimum group size for a tutoring session to be profitable?
Cost to run the session divided by what each student pays. If a session costs $40 and students pay $25, you need two students just to cover the cost. Set that as the minimum for a slot and the tool will only open it when it can really fill it, taking into account who else needs those students.
Is the answer exact or a heuristic?
For up to 10 slots it tries every combination of open slots and seats the students optimally in each, so the answer is exact. With more slots it uses a seeded local search and says plainly that the plan is good but not proven best. The seating itself, for any chosen set of slots, is always optimal.
Does it handle students who can attend several slots?
Yes. Each student lists every slot that works for them, and is seated in at most one. The tool shows which closed slots would have fitted each student it could not place, so you can see what opening or moving a session would be worth.
Does this work for music, swim, language or sports lessons?
Yes, anything run as weekly small groups with a cost per session, a capacity and a minimum: tutoring, test prep, music or dance classes, swim lessons, language classes and after-school clubs. It does not model pricing per head by group size; each student has a price per session.
Is my student list uploaded anywhere?
No. Names and prices are read and analysed in this browser tab. Nothing is sent to a server, there are no accounts or cookies, and it works offline once the page has loaded.