Darwin's Theories Blog

New Theories for a New Time

Web Fail du jour: Toronto Traffic Tickets


OK, I admit, I was going a few km/h over the speed limit in Toronto the other day (it was a main street so I thought it was a 50 zone, but it was 40). Well, actually, the other week. But I didn’t know it at the time. Twenty days later, I got a note in the mail with an "Automated Speed Enforcement System Offence Notice". Given where I live, paying the fine in person is a non-starter. So great. The notice says you can "pay online at toronto.ca/poa" or by mail (poa stands for Provincial Offences Act, an Ontario law). Given the odds of the post office losing my payment and having to pay even more, I thought "No problem, I’ll just pay it online and print the receipt." Boy, was I in for some pain!

toronto poa fail 1
Figure 1. Fail #1 - "A Secure Site"

First, the website insists that you stop and acknowledge that it’s a "secure site." Really? Wow? Who knew that web sites could be secure? SSL, the precursor of today’s TLS, was only released what, twenty five years ago? And I have to stop, and click OK, just to acknowledge that this site has finally joined the twentieth century? "Wow - cosmic, man!" Well, the whole site looks like it’s from the last century, so maybe I shouldn’t be surprised.

toronto poa fail 2
Figure 2. Fail #2 - Enter Number, But Not As Shown

On the next page, I get to enter the offense number. The form says to enter the offense number. That number is clearly printed in exactly one spot, on the Offense Notice, with dashes, as in 4862-994-21-A0532…​-00. So let’s see, is that fourth part A-zero or A-Oh? Let’s go with zero. Enter it as shown, and it stops accepting characters with five characters left. Damn. You have to enter it WITHOUT the dashes. Would it be too much trouble to put the note about "no dashes" in bold on the web form? As I have written many times, users should not have to care how you store numeric strings internally. It is a matter of one line of code to remove dashes if you don’t need them (to wit, either numberInput.replaceAll("-",""); or numberInput.replaceAll("[^\\d]","");, in Java or JavaScript or most similar languages.

toronto poa fail 3
Figure 3. Fail #3 - Snail Mail Faster Than Inter-Department Computerized(?) Data Flow

The third, and worst fail of all, is that, having gotten this far and entered everything correctly, I then get told that OK, so you’re here, but your accusation isn’t. But. But. But…​ It was mailed so long ago, from a computerized system, and the post office came through with the notice, but the accusation is still not yet in the computer that needs to know about it so I can pay it?

Yup, here’s the secret inside story, from a reliable source who must not be named. Somewhere between the Toronto Police Services, the Ontario Court of Justice, and the City of Toronto, the information is printed out, attached to a trained gerbil which takes about 20 days to make the trek through Toronto’s subways and sewers to deliver its (hopefully watertight) container to the City of Toronto, who then takes 3 more days to unroll the paper and straighten it out, re-keypunch the data, and then send the cards through a computer-museum-era card reader, and processed overnight or on the following weekend. Finally, the next day, your ticket is ready to pay! Woohoo! Meanwhile, since I don’t know where "my" gerbil is on its travels, I have to go back to the web site and try again…​ In other words, start all over. If it’s not there, try again the next day…​ And the next day…​ ad nauseum.

Your tax dollars, hard at work. Or maybe not so hard.