An optimisation engine built for timetabling.
TimelyNodes weighs every rule in your timetable at once and checks every result before it is returned: no student or lecturer is ever double-booked.
Why timetabling defeats general tools
A university timetable has thousands of sessions, each with dozens of possible times and rooms. Most tools place sessions one at a time, and an early choice blocks a later one, which is why so much of the work ends up being done by hand.
How TimelyNodes approaches it
TimelyNodes weighs every rule against every session at the same time, rather than one placement after another. The result is checked before it is returned: no student or lecturer is ever double-booked.
We walk technical teams through the method in detail as part of a pilot.
What is guaranteed, and what is optimised.
Two rules are never compromised. Everything else is balanced by the weights you set.
Enforced on every solve
- No student in two sessions at once
- No lecturer in two sessions at once
Blocked times are priced out of reach and have been honoured in every test we have run.
Optimised by weight
- Preferred and avoided hours and days
- Room capacity and suitability
- Spreading, gaps and daily teaching load
Each result reports the cost by rule type, so you can see exactly what was traded off.
Measured, not estimated.
Solve times measured without session-linking rules. The test instance is pu-llr-spr17 from the International Timetabling Competition 2019: real Purdue University data with 1,001 classes and 75 rooms, published so results can be checked independently.
Current scope.
Session-linking rules are optimised
Rules that tie sessions to each other, such as two sessions that must start together, are weighted preferences today, not guarantees.
One slot and room per session
A session keeps the same time and room in every week it runs. A lab that changes room mid-term is modelled as two sessions with their own weeks.
Linking rules add solve time
On large timetables they take longer to solve. We measure your data in a pilot rather than quote a best case.
Put it to work on your own timetable.
A pilot runs the engine on a term you have already timetabled and compares the result with what you published.