← All articles
Product

Student-based scheduling: when every timetable is different

Course choices turn one timetable into six hundred. Here is what actually changes in the problem — and why this capability is usually sold as an expensive upgrade.

Course systemsOberstufeElectivesSectioning

For most of a school, the timetable is a property of the class. Class 7a has a schedule; every student in 7a follows it. Build twenty-eight of those and you are done.

Then you reach the upper years, and the model quietly breaks. Students choose. One takes advanced Mathematics, Physics and Latin; the next takes Art, Biology and Spanish. They share a form group and almost nothing else. The timetable is no longer a property of the class — it is a property of each student, and there are six hundred of them.

Schools know this transition by different names — Oberstufe and Kurssystem in Germany and Austria, options blocks in the UK, course requests and sectioning in the United States, the IB Diploma programme internationally. The vocabulary differs; the mathematics does not.

What actually changes in the problem

It is tempting to think of student choice as "class-based scheduling, but more of it." It is not. Three things change in kind.

1. The conflict rule moves from the class to the person

In a class-based timetable, "no double-booking" means no class has two lessons at once — twenty-eight constraints for twenty-eight classes. With individual choices, it means no student is expected in two places at once: six hundred constraints, one per person, each linking a different combination of courses.

In Bildena this is a hard constraint enforced per student per period. The solver cannot produce a plan in which any student's chosen courses overlap. It does not minimise clashes and report the remainder; the arrangement is excluded from the search space entirely.

2. Course sizing becomes part of the problem

If eighty-two students choose Biology and a lab holds twenty-four, you need four sections. But how many sections you open, which teachers take them, and which student lands in which one are not independent decisions — they determine whether a conflict-free timetable exists at all. Put your two Biology sections in the same period and every student who also wants Chemistry then is stuck.

3. Quality becomes personal

A class-based plan can be judged in aggregate: teacher gaps, subject spread, daily load. With individual timetables, the aggregate hides the story. A plan with excellent average statistics can still leave one student with four free periods on Tuesday and another with six straight lessons and no lunch. The measure that matters is the worst individual experience, not the mean.

This is why upper-year timetabling takes weeks by hand. Not because there are more lessons — because the interactions are combinatorial. Moving one course to fix one student's clash creates clashes for a different, invisible set of students. A human cannot hold that in their head, and a heuristic that fixes one complaint at a time will chase its tail.

How the incumbents handle it — and what it costs

Student-based scheduling is where the established products draw their commercial line, and it is worth being specific, because the pricing tells you how hard the problem is considered to be.

aSc TimeTables gates individual student choices behind its top edition. Its own documentation describes the mechanism plainly: the planner specifies the number of sections for a course, and the software reports how many students requested it. The optional rearranging function moves students only between parallel groups of the same subject — and, in aSc's words, "if you do not have seminar groups (the same subject taught by more teachers) then the software cannot rearrange anything." The program also "will never sign out a student from some subject nor sign him as a new student." In other words, the sizing decision stays with the human.

Untis takes this further. Its Kursplanung module explicitly includes the distribution of students across alternative courses, and its total optimisation will place courses into bands and assign students at the press of a button. It is genuinely automatic — but it is a separately licensed module on top of the base program, and Untis' own manual recommends manually pre-planning and fixing part of the courses first, noting this "significantly improves the quality of the solutions."

Where it livesWho sizes the sections
aSc TimeTablesTop edition onlyThe planner specifies section counts
UntisPaid Kursplanung moduleSoftware assigns; manual pre-planning advised
BildenaIncluded from the Standard planSolver enforces per-student conflicts as hard constraints

We are not claiming the incumbents cannot do this — both can, and Untis does it well. We are pointing at where the capability sits commercially: behind an edition upgrade or a licensed module, in both cases at a significant multiple of the base price.

What we do differently

It is not an upgrade tier for the capability itself. Per-student conflict enforcement is part of the engine, not a module bolted on top. Our Pro plan exists for schools whose scheduling is genuinely student-based — universities, colleges, IB and Kurssystem schools — but the mathematics is the same engine doing the same job, priced for the segment rather than gated as a different product.

The conflict guarantee is structural. Because a student's enrolments become constraints in the model rather than penalties in a score, "Anna cannot attend both" is not a warning you read afterwards. It is an arrangement the solver was never permitted to produce.

Infeasibility is diagnosed, not absorbed. Sometimes a set of choices genuinely cannot be timetabled — two heavily subscribed courses, one qualified teacher, one lab. A heuristic will hand you a plan with the problem buried in it. A solver can prove the conflict and name the courses involved, which turns an impossible timetable into a solvable conversation: open another section, find another teacher, or tell forty students early rather than in September.

The test that matters. Take last year's real course choices, run them, and look at the worst-off student rather than the average. That is the number that generates complaints in September, and it is the one a per-student model is built to control.

What we do not do yet

Automatic assignment of students to parallel sections — the balancing that Untis' Kursplanung performs — is not in Bildena today. If you offer four Biology sections, you tell us who is in which; we then guarantee that the resulting timetable is conflict-free for every one of those students and optimise around it. Automatic sectioning is on the roadmap and is the natural next step for this engine, since it is the same class of constraint problem.

For most Kurssystem schools this is a smaller gap than it sounds: section membership is frequently determined by pedagogical judgement, prior attainment or pastoral considerations that no optimiser should be making. For very large institutions running pure preference-based allocation, it is a real limitation today, and we would rather you know that before a trial than during one.

A note on what "personal timetable" means downstream

Once every student has an individual schedule, publication changes too. A printed grid on the corridor wall stops being useful; a student needs their timetable, and it changes when a course does. This is one of the strongest arguments for a web-native system: there is no export step, no version to distribute, no PDF that is three revisions old. The schedule a student opens is the schedule as it currently is.

The short version

Student-based scheduling is not a bigger version of class-based scheduling. It is a different problem whose difficulty grows with the interactions between choices, not the number of lessons — which is precisely the shape of problem constraint solvers exist to handle, and precisely the shape that defeats a person with a spreadsheet in August.

If your school reached the point where the upper years take longer than everything else combined, that is not a failure of effort. It is the problem changing underneath you.


Bildena Scheduler enforces per-student conflict-freedom as a hard constraint in a solver specialised for lesson distribution. You can import last year's real course choices during the free trial and see the resulting individual timetables before subscribing.

See it solve your own timetable

Import from aSc, Untis or Excel and run a full generation free — first timetable in 3 minutes.

Start free

Keep reading