Where are the busiest bus stops in Melbourne?
Update 3:25pm 24/07/2020: It’s been brought to my attention that some of the figures below are incorrect due to an error with amalgamating patronage data from multiple stops. I’m working to fix it ASAP and will update here again once it’s complete.
Update 7:45pm 24/07/2020: I’ve tried several programs and techniques but nothing seems to work adequately. If anyone has any ideas, please let me know in the comments below or contact me directly. The basic problem is that if I cast the geofence wider, it catches stops that aren’t related to each other. If I use stop names to join stops instead, it also catches stops that shouldn’t be grouped. For now, please assume that the numbers below are rough guides only and almost certainly exclude some nearby stops.
Last year I obtained bus stop patronage data for 2018-19 from the Department of Transport and displayed it on this interactive map.
We’ve already briefly looked at the least used bus stops in this dataset, with 2,044 recording one or fewer average daily boardings.
But where are the busiest?
Before we can answer that, a quick word about the data.
DoT record each bus stop as a separate point on a map rather than grouping them by location or name.
For example, each bay at Chadstone Shopping Centre is mapped as a separate point even though they are all within the same interchange and have the same destination. You can see the result of this on Google Maps which uses a feed from the same GTFS dataset.
So to get a decent answer to this question we have to group like stops together.
For the purposes of the map above, I did this based on name and a geofence around the central point of the interchange. It’s probably not perfect but I think good enough for this project. As noted in the update above, after I wrote this post it’s been pointed out to me that the numbers below are quite a bit off. So please take these results with a grain of salt until a solution can be found.
To start with, let’s see which stops have 1,000 or more average boardings per day.
I think that this map by itself is fascinating. There are clear patterns for where boardings are high. The Werribee and Dandenong Lines have high boardings in the middle and outer suburbs, showing the high demand for interchanging between rail and bus services.
Although I’m not 100% sure what’s going on with the ‘Hume Anglican Grammar School’ stop in Craigieburn. I suspect that this may be a data error given that one of the default myki touch on locations (for when myki is running in ‘headless mode’ and doesn’t know where it is) is around there. So unless someone familiar with the area can explain this, I’m ignoring it for now.
I won’t go into detailed analysis about the spatial distribution of these stops as I think that deserves a separate post and others would probably do it better. For now, we’re just concerned with finding the busiest ones.
Probably as expected, Monash University takes first place with 5,912 average daily boardings.
Box Hill Station, North Melbourne Station, Chadstone Shopping Centre and Footscray Station take out the remaining top four spots.
Four out of these top five are significant destinations in their own right. North Melbourne Station is the anomaly here. Almost all of those boardings would be passengers changing from trains to buses, almost certainly to the University of Melbourne in Parkville.
Most of the other 90 stops are associated with railway stations, reinforcing the important role that buses play in the rail network. Given that the latest data that we have on mode access at stations is from 2013-14, bus stop data like this is the next best thing that we have.
Some of the stops in the top 95 serve destinations that do not have heavy rail. Daniel Bowen has noted this before as one of the key differences between Melbourne and Sydney and helps explain why the latter has train patronage around 50% higher than the former. Chadstone, Northland and Doncaster Shopping Centres are a few examples here.
A final note to make is that the numbers at these stops are definitely higher than recorded in this data. As mentioned previously, I have excluded numbers from default ‘headless mode’ stops. In this data, these numbers comprised 6.5% of the total patronage figure. It’s rather strange because in the notes from DoT, they said that headless mode data is excluded and estimate it at around 10%, and yet it does seem to be in the spreadsheet that they sent.
Regardless, these numbers are not just raw myki touch ons and offs. They’re part of a changing formula used by DoT to estimate patronage (detailed notes included in the data on this page).
As always, if you have any thoughts or questions, please feel free to comment below.
Join the discussion and tell us your opinion.
Stations in the outer west debunking theroy people in outer suburbs will shun feeder buses – provide semi-useful frequencies in peaks and people will catch a bus!
But some bad news Phil…
I had a look through your original stop level patronage map and confirmed my suspicions that you have grouped mainly on stop name & travelling street.
This method doesn’t always capture all stops at a station, as buses often stop in different streets, and therefore have different names.
Here is just a few checks:
Essendon: 1,153 in Russell St.
Excludes 858 at Rose St stops
Frankston: 1,362 in Young St.
Excludes 596 at a “Frankston Station” (versus Frankston Railway Station) stop on Young St and a further 721 on Fletcher Rd side
Oakleigh: 1,737 in Portman St
Excludes 59 at Haughton Rd stop and 213 at Johnson St stop
Clayton Shopping Centre: 1,818
Excludes 117 at Clayton Rd / Carinish Rd stop + 44 Clayton Station / Clayton Rd stop
(For 2019/2020 data with post Skyrail stop locations, I would group the station & shopping centre stops – although they are separate physical stops for each route, they are 100m apart)
Footscray Station: 2,374
Excludes 140 at Leeds St stop and 925+127+123 for variously named bays along Paisley St east of Albert St
If your goal is to say “x thousand” people travel from Essendon Station by bus (just like you have for Chadstone, Box Hill or Monash Uni) then you will need to do some further data cleaning first IMO
Thanks Craig. I’ve just tried a few different things trying to fix the problem but I can’t find a way to make it work:
1) Expanding the geofence distances means that stops in other areas that should not be grouped together end up being caught in the net.
2) I then tried using stop names instead, but this also catches stops that shouldn’t be group (e.g. along the same named road).
3) Tried doing some trickery in QGIS with buffers and spatial joins but none of that worked out any better.
If you or anyone else has any ideas, I’d love to hear them. For now, I’ll mark the numbers above as incomplete.