Use cases

School Timetable Software: What It Needs to Handle

What any school timetable software has to handle for vocational and VET planning, from hard and soft constraints to workshop rotations, and how Smootables handles each one.

Juho Isola, Smootables founder

Key takeaways

  • Any school timetable software needs a clear split between hard constraints that must hold and soft preferences that shape quality.
  • Vocational and VET programmes break the group-shaped model: workshop rotations, off-site placements, and individual student pathways all need their own handling.
  • Smootables runs on Google OR-Tools CP-SAT with eleven hard constraint families, pre-generation validation, and named infeasibility causes instead of a bare failure.
  • Moving off a spreadsheet is its own project. Smootables imports Excel and CSV directly, with hands-on migration help when the data needs it.

What does a school actually need timetable software to handle?

A lot of software claims to solve school timetabling. Fewer say what "solve" has to cover once teacher hour limits, room types, and a curriculum that does not split into equal blocks are all in the room at once.

For a vocational or VET planner, most of that list starts life in a spreadsheet: data spread across separate Excel files that has to be pulled together by hand, and a year plan that has to be finished before placement can even start.

Every timetabling problem separates what must be true from what would be nice: hard constraints must hold for a timetable to count as feasible at all, while soft constraints are preferences that shape quality and can be violated at a cost the software tries to minimize. The clearest version of the split is periods: an unavailable period can never be scheduled into, while a preferred free period is only honoured when the rest of the plan allows it.

Sometimes a set of requirements everyone has declared mandatory turns out to be jointly impossible. Planners reach for a third rung then: hard, firm, soft, so the mandatory list can be triaged instead of simply failing closed.

What happens when a lesson simply doesn't fit?

A lesson that fits into no available period, because its teacher or students are not simultaneously free, is a kickout. A multi-step interchange of activities to make room for it is what practitioners call FIT, or musical chairs. Pinning fixes a piece of staffing in place so a later re-run changes less around it.

Why do vocational and VET programmes break the group-shaped model?

Vocational teaching does not schedule cleanly against one shared class moving through the day together. A workshop has a fixed number of bays, lifts, benches or machines, so cohorts rotate through stations to get equal hands-on time, and a placement block that sends students off-site for work-based learning consumes one or two full timetable days a week, plus travel.

What does moving off a spreadsheet actually involve?

Getting off a spreadsheet is its own project, with a shape every migration goes through in roughly this order.

  1. Understand what the current sheets actually encode.
  2. Clean the data.
  3. Map it into the new structure. This is field mapping, the step where migrations most often break.
  4. Test the result.
  5. Validate it against reality.
  6. Go live, typically alongside a parallel run of the old and new systems before the old one is retired.

How does Smootables handle each of these requirements?

That is the checklist the automatic timetable solver is built against, not the other way around. The solver runs on Google OR-Tools CP-SAT in two phases: the first proves a timetable is feasible against hard constraints, the second optimizes weighted soft preferences.

RequirementHow Smootables handles it
Hard constraints vs. soft preferencesEleven hard constraint families are always enforced, including teacher and room no-conflict, room capacity, room availability windows, teacher weekly maximum hours, minimum breaks between lessons, pinned-lesson immutability, and course or module dependencies as ordering. Six weighted soft preferences, each school-configurable, cover gap hours and workload balance.
Kickouts and infeasible plansPre-generation validation runs 13 checks before a solve starts, and when a solve turns out infeasible anyway, the analyzer returns one of 9 typed conflict causes with concrete suggestions instead of a bare failure. A run that still cannot place everything returns a partial timetable, with the lessons that could not be placed parked in a waiting area for manual resolution, rather than the whole result being discarded.
Pinning a placementPinned-lesson immutability is what pinning runs on: a placement held in place through a regenerate, and pinning survives regeneration by design. Blocked days and holidays are enforced the same way, as a hard constraint rather than a manual workaround.
Workshop rotations and off-site placementsPlacements can be flagged for remote delivery, which consumes no physical room, or for workplace-learning delivery, which needs neither a school teacher nor a room. Participants are modeled as groups plus individual students with per-student exemptions.
Comparing or reverting a previous versionEvery generation also creates a branch holding an immutable snapshot of the plan. Branches can be compared, restored and reverted, and manual edits land in a per-branch audit trail. Incremental generation regenerates only the groups that changed, so fixing one kickout does not mean re-solving the whole timetable from scratch.
Scheduling granularityScheduling runs on 15-minute intervals, with lesson durations from 5 to 480 minutes, so a short debrief, a standard lesson, and an all-day workshop block sit on the same grid without a workaround.
Migration off a spreadsheetImport accepts Excel and CSV for resources, the teaching offering, and full period plans, through a pipeline of parsing, column mapping, a preview step, ambiguous-match handling, and duplicate detection. Where a school's spreadsheets need more than that, the Smootables team does the migration by hand as part of setup.

Who does this fit?

This fits a school where the planning phase runs across more than one person or campus, where a meaningful part of the catalogue is vocational or work-based rather than one shared class moving through the day together, and where how the year gets planned currently depends on which planner is doing it.

If you are already comparing named tools side by side, the comparison page is the more useful next stop than this one. If you are still working out what the software has to get right before you compare anything, the guide above is the one worth keeping.

Questions schools ask about timetable software requirements

How does Smootables tell hard and soft constraints apart, not just in the sales copy?

The solver runs on Google OR-Tools CP-SAT in two phases: the first proves a timetable is feasible against hard constraints, the second optimizes weighted soft preferences. Eleven hard constraint families are always enforced, including teacher and room no-conflict, room capacity, room availability windows, teacher weekly maximum hours, minimum breaks between lessons, pinned-lesson immutability, and course or module dependencies as ordering, alongside six weighted soft preferences that cover gap hours and workload balance.

What happens when a lesson simply will not fit?

That is a kickout. Pre-generation validation runs 13 checks before a solve starts, and when a solve turns out infeasible anyway, the analyzer returns one of 9 typed conflict causes with concrete suggestions instead of a bare failure. A run that still cannot place everything returns a partial timetable, with the unplaced lessons parked in a waiting area for manual resolution.

Can a placement be pinned so a re-run does not move it?

Yes. Pinned-lesson immutability is a hard constraint, so a pinned placement is held in place through a regenerate and the pin survives regeneration by design. Blocked days and holidays are enforced the same way.

Does Smootables model workshop rotations and off-site placement blocks, or only whole classes moving together?

Placements can be flagged for remote delivery, which needs no physical room, or for workplace-learning delivery, which needs neither a school teacher nor a room. Participants are modeled as groups plus individual students with per-student exemptions, and scheduling runs on 15-minute intervals with lesson durations from 5 to 480 minutes.

What does migration actually involve, and how much of it is Smootables' work versus ours?

Import accepts Excel and CSV for resources, the teaching offering, and full period plans, through a pipeline of parsing, column mapping, a preview step, ambiguous-match handling, and duplicate detection. Where a school's spreadsheets need more than that, the Smootables team does the migration by hand as part of setup.

See it against your own data

The useful next step is bringing your current spreadsheet: see where it lands against this checklist, hard constraint by hard constraint.

Related reading

See how Smootables fits your school

Book a walkthrough and we will map Smootables to your planning, workload, and timetabling process.