This is amazing - GO's bus services are usually a massive pain to understand because of all the separate timetable documents for each route.
What's worse, it's not even easy to know which timetables to check because the official system map is completely useless for looking for GO bus routes, so you basically just have to open lots of timetables and look at the route maps to even check if the route is useful to you. I think most GO bus riders probably just blindly follow Google maps or whatever and have a next to no understanding of where any routes actually go apart from the routes they regularly use. Most riders of other systems probably at least have a vague idea of where service goes.
The challenge with mapping GO's bus routes is that they're so variable. In my timetables you can see that the service patterns vary quite significantly over the day. Route 45 only runs in the morning and afternoon, meanwhile routes 47G and 47D only run in the afternoon and evening. This variation is very useful as it allows GO to closely match service patterns to travel patterns.
Inevitably, many of the service customizations make the routes less intuitive. For example, a few years ago they started through-running many of the 407 East and 407 West bus routes. This is definitely an improvement for passengers, since it cuts down transfers, but it made the timetables a mess. Instead of one 407 East timetable and two for 407 West (route 40 always had its own timetable for some reason), there are now 3 for 407 west and 2 for 407 East.
However, there are certainly some improvements GO could do to service legibility, without actually changing the routes. For example, Routes 56 and 41/47 are shown on different timetables (tables 54 and 41 respectively) despite effectively being branches of the same route. During the midday, the two routes are blended to provide a 15-minute service from Oakville Park & Ride to Richmond Hill Centre via Square One, Bramalea and Hwy 407 Station.
They should include route 56 in table 41 so people can actually see the regular 15-minute service in one place.
Meanwhile route 48 should be removed from table 41 and given its own timetable since it has only shares the corridor for a single stop (Bramalea - 407 Stn) and adds it a lot of unnecessary clutter.
They also could rationalize route numbers and letters. Services which pimarily follow the same route should have the same number, and routes which have little in common should have different numbers. Route 21 could probably use a second route number to help cut down on the alphabet soup. For example, most of the services to Square One and Lisgar are independent from the services to Meadowvale and Milton.
Meanwhile routes 41 and 47 are actually the same route - route 47 is just a short turn branch. They could instead be 41 and 41B for example.
They could also use some rationalisation of branch letters. It could be useful to have some trends in letter choices, similar to how the TTC used to reserve the letters E and F for express branches. This would help make branch letters easier to remember. For example 25C could have been 25E.
They should also eliminate redundant letters, like the TTC has done. Branches which merge together and run to a common terminus don't need different branch numbers, since nobody boarding the bus needs to distinguish between them. For example westbound routes 41 and 47 could both just be "41".
I did try making some service maps a few years ago: Here is a map of the weekend service from 2017:Does anyone know of any unofficial maps that exist that actually depict all GO bus routes? Such a map really needs to exist.
I made the map specifically for the weekend service because the service patterns are simpler and more consistent than on weekdays. On weekdays you'd need a map for early mornings, then a different one one for the AM Peak, another one for early midday, another one for late midday, one for PM Peak, one for early evening, and one for late evening/overnight.