Increasing Timetable Flexibility/Troubleshooting

One of the most common queries we receive with regards to timetabling is that the file has nearly reached it's target but is getting stuck and is not budging.

The key to removing this blockage and getting to 100% is providing the solver with as much flexibility as you possibly can.


Before making any changes to your file it is highly recommended that you clone it. You should then clear the grid on your new file before following any of these steps.

Teacher Sets 

One way to attain more flexibility is to manually assign teachers and rooms only when absolutely necessary; If you have already assigned a large number of rooms or teachers this is almost certain to cause a blockage.

To free this up your first step is to go to screen 4. Teacher Sets and fill in each and every subject that each teacher is capable of taking in a given year/cycle.

The more comprehensive your lists the better in the long run, so it is worth investing time in this initially as it will still apply for as long as those teachers are in the school.

Teacher Allocation

Once your teacher sets are filled in move on to screen 6. Teacher. What we want to do here is find teaching groups that have been assigned to teachers who don't necessarily need to teach them. 

1st and 5th year are usually the easiest to target as it is the first time that teachers will have these sets of students.

You can see that each of the assigned classes has a pin symbol (clicking the image above will expand it). When you left click it the pin will disappear. Classes without a pin can be automatically re-assigned by the solver.

Once you have gone through and removed the pin from all viable classes you then go to Actions > Allocate Teachers. The solver will assign available teachers to classes in such a way as to give you the best chance at a complete timetable. 

Please note that using this method does not guarantee success and is only recommended to try if you are hitting a wall.


The first step to ideally take in rooming is to set up room pools. A guide for this can be found here

We would always recommend that you ONLY assign specialist rooms to classes that absolutely need it eg Woodwork, Home Ec etc.

It is also recommended that in the case of Science subjects you ONLY assign labs to doubles or individual lessons that need it and not all lessons for a teaching group.

On screen 5. Class Data you can click the Edit Individual Room and Teacher Assignments (highlighted above) to edit individual lessons within a teaching group. As we can see below we have our spread of 2,1,1,1 for 2Sci-B and for the double we have assigned the Science Room Pool while the rest of the lessons are blank.

If it's a case that teachers would prefer to have a certain room it would be best to use screen 3. Teacher Data and select a room under the Pref. room column. Once this is set the solver will do it's best to give the teacher this room where it is feasible.

NOTE: Rooms in room pools will not be auto assigned using the auto assign function.


Restrictions can massively hinder a timetable and should only be put in place when absolutely necessary. 

They can be particularly damaging if the teacher(s) involved take classes in a block as this means that you are limiting the amount of times available for a far wider number of teachers and lessons than just those you have restrictions in place for.

If it is a case that a certain time off is desired rather than essential for a teacher you can click the time slot until it is orange, this means that the solver will try to allow for it, but if it can't it won't.

Block vs Core

While it won't always be possible it is best to keep as many classes as you possibly can in core as blocked classes are far more difficult to timetable. The more in core, the more likely you are to get to 100%.

Feasibility Issues

The feasibility checker will tell you if there are issues in your timetable file that will prevent it reaching 100%. Please note that not having any feasibility issues does not necessarily mean that the file will be viable.

Restrictions - the below message means that because of the restrictions that you have in place there aren't enough viable slots left to fulfil the spread demand for the listed classes. The easiest fix is to remove the restriction or change the spread.

Spread - the most likely reason that you will receive the below error is because at least one class in the block has a different spread to the others. To rectify this just ensure that spreads are uniform across the block.

When you receive a long list of feasibility issues it can be difficult to diagnose, but usually sorting 1 or 2 of the problems will sort the rest as well.

Careful use of room pools (see above) is one possible way to alleviate errors.

If it's a case that a number of blocks are showing as an issue the best thing to do is try to isolate a teacher who may be causing the problem. What you should try is to remove a teacher from the block and see does it sort it, if not add them back and try another teacher. Repeat this process all the way along the block to see if you can pinpoint the possible source.

Even if the error says it relates to a room, it can often still be a problem with a teacher.

Exclude Rooms

Another handy diagnostic tool is the Exclude Rooms function. This will ask the solver to disregard clashes for the specified years groups and generate the timetable regardless. You will then be able to see what room errors occur and get an idea of where the pain points are.

You can do this on screen 7 by going to Actions > Exclude Room. You are then asked to apply a filter, this works in the same way as restrictions ie if you want to target all 5th year classes you type 5*. If you want to target all years simply type * before clicking Apply.