Skip navigation

If you aren’t from Melbourne and haven’t heard of myki, it is a public transport ticketing system that has been the subject of a lot of criticism, mostly because of cost blow-outs, technical issues and general customer dissatisfaction. I wont go into the details, but rather point you at the wikipedia article which summarises them well.

If you don’t know what MykiLeaks is, then I encourage you to check out the website. It consists of only 2 pages, so it wont take you long.

How did MykiLeaks come about?

I began using a myki card in mid 2010 on my travels around Melbourne, and after a number of weeks decided to check over my statement to ensure I was being charged correctly. The first thing I noticed was how poorly presented the trip data is. More on this in a separate post, but the bottom line is that it’s very time consuming to determine what fare you were charged on a given day, and hence difficult to ensure you’ve paid the correct fare.

After discovering that I’d been overcharged a small amount (and successfully applying for reimbursement), I decided to write a Python script to check over my statement automatically, in order to save myself the trouble. I then began to wonder if other people had been overcharged, and canvassed my friends, asking the myki users among them if they’d be willing to send me their statement for analysis. I received a small number of myki statements, and soon realised that I wasn’t an isolated case. In two evenings MykiLeaks was created, and a small press release to MX magazine had the statements rolling in.

How does MykiLeaks work?

The website accepts myki statements in PDF form, and immediately extracts the travel data into a plain text file, deleting the original PDF and the user’s personal information therein. For each day of travel in the statement, MykiLeaks determines the maximum fare payable by the customer, based on the zones travelled through and the trip duration. Then, a comparison is made between this maximum and what the user actually paid. Detected overcharges (if any) are presented to the user, as well as some copy-and-pastable text for the user to apply for reimbursement with. Check out the sample statement assessment and see for yourself.

So how many people are being overcharged?

In April 2011 an estimate was made using the relatively small sample of statements (roughly 270) that had been submitted up until that time. The results indicated that as many as one third of customers had some sort of discrepancy on their statement. Now this statistic seems very large, and it may well be exaggerated due to the higher probability of a myki user submitting their statement if they already suspect an overcharge. Nonetheless, a proportion larger than 1% is completely unacceptable by any reasonable expectation of system quality, and considering we’re dealing with money, my belief is that there should be an expectation of a 0% error rate. After all, we expect that from our financial institutions, and myki money is still money.

Since this statistic was published in The Age, a further 3000 statements have been submitted to MykiLeaks. A press release is forthcoming on the results of these statement analyses.

How are people being overcharged?

I plan to answer this question in detail in a future post, however the most common overcharge patterns are:

  • User travels within zone 2 and zone 1/2 overlap, but is charged a zone 1 fare
  • User travels on a Saturday or Sunday and pays more than the $3 weekend cap
  • User forgets to touch off on a train journey, and is charged a default fare, however the total amount charged for the day exceeds the maximum daily cap of a daily zone 1 and 2 ticket

Why are people still getting overcharged?

Good question! Considering that overcharging has been a problem since the early days of the rollout, there’s no satisfactory reason why a suitable fix or workaround has not been implemented. Even if the cause of the overcharging cannot be fixed without significant hardware changes, a satisfactory workaround would be to regularly audit all statements (similar to how MykiLeaks functions), and automatically reimburse the overcharges. Currently, the onus is on the end user to detect an overcharge, and then request reimbursement.


Be Sociable, Share!


  1. Hi,

    I have just reviewed my Myki TAX INVOICE Statement and noticed that only one debit of $3.28 has been recognised. The statement balance is $26.72. The card balance is $16.84. The card was last used 24/03/2012 and was successfully touched off a tram
    My starting balance was $30.00.
    My current card balance is $16.84

    I have contacted the Myki feedback line and they told me that this was a glitch and just to try again in a couple of weeks.
    Has anyone else experienced the same problem?
    How does the ATO interpret a TAX INVOICE that has missing debit information?
    How can a work travel expense be claimed if the TAX INVOICE does not show the correct debit amounts?

  2. Hi Robert,

    Missing transactions are a common problem on myki statements. Often the running balance will appear to drop between trips… ie a trip has been made (and the fare deducted from the card) but the trip information never makes it to the statement. It makes auditing the statement accurately near impossible. As you say, it also makes reimbursement from an employer difficult as well.

    When your statement eventually updates to contain more recent transactions, let us know if any of them are still missing.

  3. Hi,

    I live in Kew East and have to take a tram, bus and sometimes a train to get to the City. I have noticed that there is a default 2.26 on the tram and when i checked with Myki… they said it was zone 2 overlap region, but I just checked the map today and it is clearly zone 1, where i get on and off.

    I used your website to see if there are any errors to my statement and your website did not find any problems… but I think because of zone1 and 2 confusion, I have been overcharged definitely on one day… I dont know about others as I have not checked.

    • All trams stops are now either zone 1 or zone 1/2, so you should not be paying any extra either way.

      Just because your statement mentions a ‘default fare’ doesn’t mean you have been overcharged. The only way to check is to add up to total amount of transactions for the day’s travel and compare it to the myki fare tables. Have you done this? What is the total deducted from your account for the day in question?

  4. Outraged. I buy 4 week Myki Passes. Currently due to run out tonight. I bought another 4 weeks of Myki Pass this morning at $112.60 but because I did not touch-off once or twice (why would I??? I have fare for a whole month – I never had to swipe off with a metcard it knew that a monthly meant i was covered for a full month – not 2 hours or one day) I have had Myki Money deducted and now in the negative! Now because I am presently .62 in the red in Myki Money – I cannot use the 4 wk Myki Pass I bought this morning. I have been told I have to ‘Put another couple of Myi Money dollars on the card and it will let you use the Myki Pass’. This is a complete and utter sham and a rip-off. I am absolutely disgusted that this company can so BLATANTLY extort money form users.

  5. Hi Jonathon, just wanted to say great work – keep it up!

  6. Hi Robert,
    have just used your site to check my statement and it has NOT detected overcharges, however I see that on certain days I have had “default fares” deducted that pushes the total daily amount dedecuted over the max daily charge for Zone 1, despite all travel being within Zone 1. Seems your site (and Myki system!!) is not properly detecting touchon/touch off on various modes – eg Train/Tram in AM followed by Bus/Train pm is confusing system, with “default fares” being incorrectly applied. Result appears to be overcharging of approx $3 per day!!

  7. Hi Jonathan. I have just run my statement through your site. Each day is split out as a separate box in your report – apart from the most recent day, which does not appear at all in your report. That is, their is one day of trip information in the myki statement that has not corresponding output in your report. I’m happy to email you my statement for debugging if you wish. Ross

Leave a Reply to Rod Cancel reply

Your email address will not be published. Required fields are marked *

5 − = two

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">