About MelbTracker
MelbTracker follows Melbourne's Metro trains using Transport Victoria's live train data, to show how the different fleets move around the network. Follow a train set through the day and you can see where it goes: an X'Trapolis 100 that starts out on Belgrave services, for example, and the point where it moves across to the Frankston line.
Live stats
Live stats: from 14 August 2025 at 23:37 up to now.
What you can see
- Live map: every train that has reported its position in the last 10 minutes, coloured by line or by fleet.
- Fleet: how many sets of each fleet ran today, and on which lines.
- Line changes: every time a set moved from one line to another.
- Coupling changes: sets coupled together, split apart or swapping partners between trips.
- Train set pages: one set's day as a timeline, its trips and the sets it was coupled with.
- Line pages: the fleet mix on a line, and the sets joining and leaving it.
- Trips: services by line, TD, set and day, and each trip's path on a map.
Terms
- TD
- Train description: the number a service runs under, such as 4517. The same TD runs at much the same time each weekday.
- Train set
- Carriages that stay coupled together, written as their car numbers, such as 701M-2500T-702M (M is a motor car, T a trailer). Most six-car trains are two three-car sets; HCMT trains are single seven-car sets.
- Line group
- Lines that share a colour and a route into the city, such as Belgrave, Lilydale, Alamein and Glen Waverley.
- Up and Down
- Up services run towards the city, Down services away from it.
Where the data comes from
Positions come from Transport Victoria's GTFS Realtime feed for Metro trains and are recorded about once a minute. Train sets are matched from the car numbers in the feed; X'Trapolis 2.0 sets are recognised by their car numbers (8101 to 8650) and added the first time each one runs. Line routes and stations come from Transport Victoria's GTFS Schedule.
History covers 14 August to 3 October 2025 (with a gap from 18 to 25 August), then from 31 October 2026 onwards.
MelbTracker is unofficial and isn't affiliated with Metro Trains Melbourne, PTV or the Victorian Government. Positions can lag or be missing, so check official sources before you travel.
How MelbTracker started
I started this project in August 2025, under the name MetroLog. I got data collection and a basic front end working, but other projects took over and I set it aside. The agentic coding tools available at the time also weren't up to helping me work through some of its bigger problems.
While it sat untouched, data collection kept running until 3 October 2025, shortly after Transport Victoria moved API access from its Data Exchange Platform (DEP) to the Transport Victoria Open Data Portal.
What got me to launch? I came across another project built around a different idea, which prompted me to register this domain on 31 October 2026, polish up a new release, and here we are. My aim isn't to copy other websites or tools that use the same data. I want to offer a point of difference that serves my own interests, and share it with the public.
How it's built
The website runs on Cloudflare Pages as static files, with a PHP and MySQL (MariaDB) back end serving the API. The API is hosted on a $5/month Vultr server in Melbourne, Australia.