Excel to timetable software

How to check timetable data before you generate

The pre-solve gate: fix critical data errors, prove the structure can schedule, and test the migration twice before trusting an automatic run.

Juho Isola, Smootables founder

An automatic solver cannot rescue broken input. Critical static data errors block a feasible result, so a generate run on dirty data costs time and returns nothing usable.

The gate before generation has three parts: fix critical data errors and pass dynamic analysis, prove the structure can schedule with feasibility checks such as block build, combing chart, and what-if, and test the migration itself at least twice.

This guide sequences that gate. The constraint side is covered in constraint validation; the cleaning that precedes everything is in data cleanup.

Key takeaways

  • Critical static data errors block a feasible result; fix them before any solve.
  • Dynamic analysis comes after static checks and before optimisation.
  • Block build, combing chart, and what-if checks prove the structure can schedule.
  • Run two test migrations: the first finds the gaps, the second proves they are fixed.

Fix critical errors first

Validation has an order. Critical static data errors come first because they block a feasible result: while one remains, no solver run can succeed, whatever the settings.

Dynamic analysis follows. Only when both pass is optimisation worth its runtime. The order protects solver time, and it stops the team reading data errors as timetable design problems.

Prove the structure can schedule

A dataset can be clean and still unschedulable. Feasibility checks such as block build, combing chart, and what-if testing exist to prove the structure can schedule before you trust an automatic solve.

If these checks expose structural problems, fix the structure. Optimisation settings cannot compensate for a model that has no feasible answer.

Sequence the gate

Run the gate in this order; each step assumes the previous one held.

  1. Run the first test migration and list every mapping and data-quality gap it exposes.
  2. Fix the gaps at the source, in the data or in the mapping.
  3. Run the second test migration to confirm the fixes.
  4. Fix all critical static data errors it reports.
  5. Run dynamic analysis and clear what it raises.
  6. Run feasibility checks, and start optimisation only when the structure passes.

How to do this in Smootables: pre-generation validation

Validation runs before the solver spends time on an infeasible plan.

Smootables runs validation before it spends any solver time: Generate timetable checks the period plan first and reports problems instead of attempting a doomed run. The View errors button opens the Validation errors sheet, where each finding is typed (Missing teacher, Missing room, Teacher hours exceeded, Not enough rooms) and links to the fix: View placement, View teacher, or Go to rooms.

If generation still fails, the report that follows explains why, with typed conflict causes and suggested actions such as reducing a teacher's load or adding rooms. The gate saves the run; the report explains the run that failed anyway.

Why two test migrations

The first test migration reveals mapping and data-quality gaps. The second confirms the gaps are fixed. Skip the second and you cannot tell whether the repairs held or you were lucky.

Treat the pair as one unit of work. A migration that has passed once has been tested; a migration that has passed twice has been verified.

When a check fails

When a check names a specific failure, go straight to its repair: fixing a double-booked teacher or resolving a room clash.

Structural failures are often constraint problems in disguise. The split between the two is covered in hard constraints.

Questions planners ask before generating

Is one test migration enough if it passes?

The first run's job is to expose mapping and data-quality gaps, so a clean first run is rare. The second run, after fixes, is the evidence that the repairs worked.

What is the difference between static checks and feasibility checks?

Static checks ask whether the data is valid on its own: fields present, references intact. Feasibility checks ask whether valid data can actually produce a schedule. Both can fail independently.

What are block build, combing chart, and what-if checks?

Feasibility techniques from school timetabling practice, used to prove the structure can schedule before an automatic solve. If your tool does not use those names, look for the checks that answer the same question: can this structure schedule at all?

More guides on this topic

See how Smootables fits your school

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