Category Archives: Transport

Thoughts on public transport, particularly that of Melbourne and greater Victoria in Australia.

What’s going on in-between the railway lines at South Yarra?

As part of the Metro Tunnel project, the railway junction on the approach to South Yarra station is being redeveloped to accommodate the new tunnel portal. Whilst this much is obvious, what isn’t immediately clear is the purpose of all that work that’s going between the Caulfield and Sandringham lines.

Satellite image from Apple Maps
Continue reading

The simple, but mind-bogglingly persistent problem with Melbourne’s new trains

A photo I took of the HCMT on its first passenger (aka. revenue) service.

Update 11/12/21: A lot of what I wrote here I have discovered in time to be incorrect–primarily that the buttons aren’t touch sensitive, but rather pressure sensitive. The timeout/lockout behavior seems to have been altered.

Have you been on one of Melbourne’s new High Capacity Metro Trains (HCMTs) yet? They’re very nice–long, plenty of comfy seats as-well as standing area, and modern passenger information with dynamic line maps, all as you’d expect from a modern metropolitan/suburban train system. It’s checkmarks all the way down, except for one problem. Sometimes the doors don’t open.

Continue reading

A few thoughts on the recent Moe bus re-timetabling

Photo of LVBL Volvo B5L bus outside the Latrobe City Moe Library and Service Centre. Photo Credit: Volvo
Photo: LVBL Volvo B5L bus outside the Latrobe City Moe Library and Service Centre. Photo Credit: Volvo

Roughly two years ago, PTV completely overhauled the bus network in the Latrobe Valley, operated by Latrobe Valley Bus Lines. Amongst other changes, the new routes and timetables split the Newborough loop out of the Moe to Traralgon trunk route (Route 1), thus creating two local Newborough routes (Route 14 and the new 15), as well as streamlining Route 1 to run more reliably, regularly, and for longer hours. Whilst many Newborough locals were opposed to the changes, I personally found them to be of considerable improvement. The new Route 15 provided service where there previously was none, and the Route 1 streamlining meant you could get to Morwell from Moe/Newborough in roughly 15 minutes, and Traralgon in around 35.

Even though I spend most of my time nowadays in Melbourne, the bus network in the Latrobe Valley still remains of considerable importance to me. It’s how I got around when I lived there, and now it’s how I get around when I’m in the area visiting family or friends. As such I have been able to generate an array of opinions on how the service is run, with most of them not being positive. I’ve communicated before, both to LVBL and PTV, about the various faults I find in the operation of the service; such as the lack of timely connections to trains Moe Station, or Route 1 buses arriving late into Moe Bus Interchange with local town routes departing before the Traralgon bus arrived. Writing to LVBL simply resulted in them asking me to redirect my complaint to PTV, and writing to PTV garnered basically no tangible response to my concerns; they simply stated that they’d keep my concerns in mind rather than opening a dialogue.

So understandably, I was both excited and hesitant when I heard that PTV are due to enact a new set of bus timetables for the Latrobe Valley on the 23rd of June. Would we finally see a more logical set of routes and timetables for Moe, with proper connections with trains and other bus routes, or would we see just a general expansion to service with the same faults still present?

Continue reading

Introducing PTData–easily obtain Victorian public transport data in a tabular format

Update 29/5/21: I currently no longer work on PTData and have taken it offline. Let me know if you would find some use in it!

Today marks the public release of my newest project, PTData. PTData makes obtaining data from the PTV API easy by displaying it in a tabular format, linking the data together via clickable links, and making all of it available for download as CSV. PTData can currently request lists of routes, lists of stops, lists of departures and a service’s stopping pattern, with more features planned for the future.

My initial intention for this project was to make it easier to import bus timetable data into Excel. Copy/paste just wasn’t formatting into the cells correctly for me, so that led to me entering in the times manually. This quickly became a tedious and frustrating process, which was what initially spurred me to start the project. Almost exactly two weeks later, and here we are.

The site sports quite a simple design as it currently stands, and that for the most part has been intentional. In ways I’m nostalgic for the bare-bones web design trends of the early 2000s, but at the same time it serves the practical purpose of being information-dense. In regards to the technology powering the site, I’ve kept it quite simple as to help with getting the site off the ground as quick as possible. The site itself is written in Ruby, utilising the Sinatra web framework and Dylan Shaw’s ruby-ptv-api gem. As for why I chose Ruby and Sinatra, it’s pretty much what I’m most comfortable with for developing web applications of this nature. I can see myself changing languages and frameworks going forward should the need arise.

There is currently no dedicated database storing the information from PTV permanently, although I do have the rendered pages being cached by nginx and then later Cloudflare to ease load on the API. I do plan to integrate a database eventually, and this would open a whole world of opportunities in regards to working with the data. On a surface level, it would allow for the rendering of a traditional ‘timetable’ view, but going further it would make possible some interesting analysis. Average delay per route, how time of day affects the network, etc.

The site’s code is open-source over at, and I do welcome any issue reports, ideas, or pull requests. The codebase is very rudimentary as it currently stands, however I do quickly see it becoming a rather complex project with numerous backend services performing different tasks.

By now you’re probably wondering what I’m going to use it for. For a long time I’ve wanted to perform an analysis on the bus timetables and connections in the Latrobe Valley. From experience I’ve found the inter-modal and inter-route connections to be quite poor, but with this tool I can now state with exact numbers just how bad it actually is. Stay tuned for a future blog post…