The 80% Schedule
8th Feb 2025
The 80% Schedule
One of the most common pain-points I hear from the Music Teachers (VMT) that I have spoken to over the last few years has been planning student lesson schedules for the next school term. I have had a few false-starts over the last few years on this, I keep uncovering yet another piece of foundational scheduling functionality that we need before this can start. Anyway, Soniq now has a solid scheduling foundation built into the core, and with Soniq in beta, this foundation is becoming pretty mature. Now’s my chance to try again.
I had a good conversation with Jamie Williams on the subject, pretty sure it was a year ago now. He stressed that getting a draft schedule prepared that is 80% there will save a lot of time. This seems to me a good goal to start with.
Defining the Problem
Before we start analysing potential solutions, let’s first think about the problem in a little more depth.
- Each Teacher has a different timetable of availability
- Teachers often have multiple locations where they teach and during particular hours
- Students also have complex and varied availability as well as personal needs to take into account
- Students may have preferences for lesson duration (30min, 1hr etc)
- Some students require back-to-back slots (e.g. siblings)
- A teacher may need travel time between teaching locations
- A teacher may have preferred times for specific age groups/skill levels
- Some slots may need equipment that is only available in certain locations
- Seasonal variations like after-school activities or exams affect availability
I think this list gives a good idea of how complex this area can get but I don’t think we can, or should, try to resolve all of these points in the first iteration.
Considerations
- For us to generate a schedule which is 80% there we can be happy with placing students in the wrong place as long as it is easy for the teacher to finish the planning stage
- We should also expect that early iterations will not be as accurate as there is less data to make good decisions. The plans should improve with time.
- We will prefer learning over configuration. What this means is that we will not add lots of settings for a teacher to set up beforehand. We will accept a less accurate result, especially in the early stages but feel that this is preferable to a very administrative style of planning.
Potential Patterns
- Attended lessons will indicate that a day, as well as a time, is working for a particular student
- We assume Teachers will tend to do lessons in blocks, therefore we should keep students close to those students they have been scheduled close to in the past
- Historical schedule changes could indicate problematic slots as well as preferred times that work better for that student
- Students who consistently arrive late may need different timing
- Cancelled lessons might indicate unsuitable time slots
Insights
- Student retention rates in different time slots may suggest optimal times for learning
- Impact of lesson timing on student performance/progress
Does it have to be magical?
Does this really have to be that magical? There are some obvious ways in which we could suggest lesson slots to get the teacher 80% there. Simple things like keeping student lessons on the same days as they have been placed in the past, allowing teachers to add unavailable slots for each student to account for PE lessons.
We can start with some basics and in the meantime I will be exploring how best to make the most of technologies like Machine Learning, and other areas of AI. It is worth considering that with any sort of AI suggestions we will need to base the learning on some sort of data, and given that teachers tend to work in such varied ways it is likely that we will need to rely on enough past scheduling data for their students. Once the teacher has been using the platform for a few months, we should start to see common patterns emerging and therefore suggest a schedule for each student based on their previous lesson times.
Other Soniq Posts
References
- https://docs.pola.rs/
- https://musiciansunion.org.uk/working-performing/working-with-musicians-and-music/school-visiting-music-teacher-guide/charter-for-visiting-music-teachers
- https://musiciansunion.org.uk/working-performing/working-with-musicians-and-music/school-visiting-music-teacher-guide
- https://www.musicteachermagazine.co.uk/content/opinion/mu-column-charter-for-vmts
- https://rust-ml.github.io/book/4_dbscan.html