The inscrutable nature of UK rail ticketing

(or: It's embarassing how often as a customer, I have to make educated guesses on how a company's IT works, Part 1)

UK railway ticketing is absurdly complicated; I don't think anyone really disputes this. (The exception is travel solely within London, which is run by TfL and not National Rail; if you've only travelled in London, you don't know what you're missing.)

Recently I had to arrange some train tickets for some imminent travel. Although UK rail ticketing is complicated and confusing, I've dealt with buying railway tickets in the UK my whole life and am somewhat familiar with the system, so I wasn't expecting to have difficulty here.

I want to get to Heathrow Airport Terminal 4. I live near London and am well-served by the Thameslink line, so there are two obvious routes I might take:

  1. Take the Thameslink line into London, then change onto the Picadilly underground line and take it to to Heathrow Terminal 4 underground station.

  2. Take the Thameslink line into London, then change onto the shiny new Elizabeth Line and take it to Heathrow Terminal 4 railway station.

Note that there are two different Terminal 4 stations here: Terminal 4 underground station and Terminal 4 railway station. These aren't the same thing. It appears it's quite easy to get a ticket to Terminal 4 underground station (or rather, “Heathrow Underground” — it's common for UK rail tickets to list a group of stations rather than a specific station, when those stations are very close together. In this case, “Heathrow Underground” encompasses all London Underground stations serving Heathrow), but such a ticket is not valid for Heathrow Terminal 4 railway station.

But once you realise this distinction, there's no problem, right? After all, there are many different railway journey planner websites in the UK which feed off National Rail's ticket information system. All you have to do is input the source and destination stations and it'll tell you what ticket you need... right?

Except... it turns out that the UK ticketing system is so complex that not even all websites selling rail tickets can actually interpret it correctly. I start by trying to book tickets on the website of the train operator, Thameslink.

The website responds by offering to sell me a ticket and also suggesting a journey. The journey is to take the Thameslink line into London and then change onto the Elizabeth line — so far, all as expected. The ticket it offers to sell is a ticket from my home station to “London Underground and DLR Zones 1-6”. Yet the Elizabeth Line is not considered part of the London Underground. If interpreted literally, they're trying to sell me a ticket not valid for the journey they're proposing I take.

At this point I hypothesise that when someone wrote “London Underground and DLR Zones 1-6”, they really meant “TfL Services Zones 1-6” and they probably haven't updated the text to reflect the opening of the Elizabeth Line. Not so. Out of prudence I start enquiring with people who are insanely knowledgeable in UK rail ticketing. They emphatically tell me that such a ticket is not valid on the Elizabeth line, only on the Underground, and that the Thameslink website is wrong to offer such a ticket while recommending the Elizabeth line. Apparently this is due to some kind of arcane restriction TfL has put on the Elizabeth line where they consider it separate from the Underground. Some material online suggests that this might be something to do with a tunnel not owned by TfL which they have to pay to use for Elizabeth Line trains which go through it, and their attempts to recoup this cost via higher ticket prices for tickets allowed to use the Elizabeth Line. Or something. Who knows?

Anyway, it seems like the reason the Thameslink website tries to sell the wrong ticket is that it isn't interpreting the rules regarding the Elizabeth Line correctly. My inference is that National Rail maintains some kind of master ticket information database which painstakingly encodes various restrictions, and Thameslink's ticket sales engine isn't applying the ones which relate to the Elizabeth Line correctly.

Interestingly, I would apparently technically be within my rights to make the journey anyway on the grounds that the website selling the ticket had advised me to use the Elizabeth line, which wasn't my fault. (So is the ticket valid or invalid? Seemingly, no-but-kinda-yeah-but-no-but-yeah. It's Schroedinger's railway ticket.) Of course, this will probably involve one's ticket being rejected at the barriers and interesting arguments with ticket inspectors, so this isn't a particularly appealing prospect. (Still, it's nice to know anyone who falls victim to this bug won't be held responsible.)

Interestingly, another rail ticket sales website charged a much higher fee when asked for a ticket to Heathrow Terminal 4 railway station. I didn't understand why at first, until I started asking people about all this and learnt way too much about how UK rail ticketing works.

You see, when this second website (Trainline) took my request for a ticket to Heathrow Terminal 4 railway station, it correctly fulfilled it with an offer to sell a ticket to Heathrow Terminal 4 railway station, not a ticket to “London Underground and DLR Zones 1-6”. However, it turns out that this ticket is substantially costlier because it assumes you are going to use the Heathrow Express.

Here we come to an aspect of how silly the UK rail system is which will probably be familiar to most people in the UK but not necessarily people abroad: We have a privatised rail system. Actually this is a complete sham and the government is totally involved in the provision and funding of rail. It used to be the “privatised” rail system was actually a bunch of franchises awarded by the government every few years to a train operating company (TOC). Nowadays they're not even franchises awarded by the government but management contracts awarded by the government. Farcically we continue to pretend we have a privatised rail system.

Anyway, one silly outcome of this is that there can be multiple TOCs serving the same route, or parts of the same route. If you have a ticket from A to B and only one TOC operates between A to B, it's simple to understand that it's that TOC that should get paid the ticket revenue. Things get more interesting when there are multiple TOCs one could theoretically use between two points.

It seems the reason why a ticket to Heathrow Terminal 4 railway station is relatively expensive is that such a ticket assumes you're going to use the Heathrow Express. The Heathrow Express is an overpriced premium train service which can shuffle you between Paddington and Heathrow Terminal 4. But since a ticket is just between A and B, this requires second guessing whether people might use the ticket on the Heathrow Express.

Of course, they could sell tickets to Heathrow Terminal 4 railway station in two variants, one valid on the Heathrow Express and one not. But they don't. Presumably they don't want to make the UK's horrifically expensive rail ticket ecosystem even more confusing and incomprehensible.

So, if you book with Trainline, and ask for a ticket to Heathrow Terminal 4 railway station, it does correctly offer you a ticket to Heathrow Terminal 4 railway station, the National Rail standard fare for which is marked up under the assumption that you're going to travel via the Heathrow Express. Hilariously however, Trainline then gives you a suggested journey via the Elizabeth Line and not via the Heathrow Express. Why? Because the Elizabeth Line is faster.

Yes that's right: if you want to get a single ticket to Heathrow Terminal 4 railway station via the Elizabeth Line, you have to pay a premium under the assumption you will instead use a slower “premium” railway service.

I hope you're enjoying my explanations of how UK rail ticketing works so far.

I mentioned earlier that they could sell a version of the ticket to Heathrow Terminal 4 which is not valid on the Heathrow Express, but don't. Except this option sort of does exist: you have to get a Travelcard.

For those unfamiliar with UK rail tickets, a day travelcard is a 1-day ticket you can buy at some station outside London, which lets you travel into London, travel around on the Underground, DLR, etc. as much as you want (so long as it's within certain TfL fare zones), and then travel back to the station you started at. It's often a very good deal.

So a better option than buying a one-way ticket to Heathrow Terminal 4 railway station is to buy a Travelcard for Zones 1-6. (Heathrow Terminal 4 railway station is in zone 6, so you need a Travelcard valid for zone 6.) You see, Travelcards are allowed to use the Elizabeth line — and aren't allowed to use the Heathrow Express. Ironically therefore, it turns out to actually be about 60% cheaper to buy a Travelcard (which is literally a ticket which lets you roam around London as much as you want for a day), than to buy a ticket for a single, one-way journey to Heathrow Terminal 4 railway station.

Isn't UK rail ticketing fun?

Incidentally, contactless payments are accepted by many TfL stations now. You just wave your payment card at the gate. When you exit at your destination station, it figures out what to charge you. This is much like the prepaid smartcard schemes which have been in use on subways globally for decades. London's prepaid smartcard scheme, which is probably one of the better known ones, is called Oystercard and is based on the MIFARE/DESFire smartcard platform. So you can now travel on TfL services using either Oystercard or a contactless debit/credit card.

You may expect that anywhere you can use an Oystercard, you can use a contactless card, and vice versa. You would be wrong.

You see, there are stations in London — TfL stations — which allow you to pay via contactless but not via Oyster. Oh yes. From TfL's own website:

Oyster cards aren't accepted at Elizabeth line stations between Reading and Iver.

What in blazes?! It turns out there is some kind of horrifying technical debt going on here. The basic idea of an Oystercard is that when you touch in with an Oystercard, the fare zone that you touched in in is stored on the card, and then when you touch out, the fare zone you touched in at is read from the card and the number of zones you've travelled through is inferred from that.

Supposedly, these new “contactless-only” stations are the product of the fact that when the format of the data stored on an Oystercard was designed, only four bits were allocated to store the fare zone. Since the number of fare zones TfL needs to encode for its increasingly complicated network apparently now exceeds 16, they have an obstacle to allowing Oystercard for the affected stations. Of course a sane response to this would be to fix this at the source and rectify this technical debt. The fact that this hasn't been done leads me to wonder what kind of horrifying legacy infrastructure TfL is having to deal with behind the scenes — or maybe they just can't be arsed, who knows. I suspect primarily the latter; the fact that they were able to add support for contactless payment cards across their network shows they can make radical technical shifts if they want to. (Since, unlike Oyster, payment cards aren't based on a prepaid balance stored on the card, they obviously involve a completely different paradigm, so TfL must now have two basically completely separate backend systems for processing Oystercards and contactless payment cards. Though it's unclear to me why TfL can't just start treating Oystercards like payment cards using their serial number and just ignore any data on the card from now on).

Anyway, this has the fun consequence that if you use an Oystercard, you now have to check whether it'll even be accepted at the station you're going to, even if it's a TfL station and historically it would be taken for granted that it would be; otherwise you may end up at your destination without a valid ticket/payment method.

Of course, the fact that payment cards are referred to as “contactless” is also confusing, as it implies that that's somehow distinct from Oystercard, which has by definition been contactless from the start. What they really mean by “contactless” is “EMV payment card or phone app”.

Even more hilariously, these “contactless-only” stations also accept... paper tickets. Yes, the paper tickets TfL has been trying to get rid of for decades by encouraging people to use Oystercard. This makes the “contactless-only” label rather inaccurate, and also implies that a paper ticket with an encoded magnetic strip actually has less technical debt than their Oystercard platform.

However, “contactless” remains mostly limited to the London area. Except for some stations outside London on the Thameslink line (but not others!) which do accept contactless. So you'd better make sure your source and destination stations accept contactless before you travel.

Isn't UK rail ticketing fun?

...Anyway, where were we? Oh yes — the single to Heathrow Terminal 4 railway station is excessively costly because it assumes you'll use the premium Heathrow Express (which is slower than the Elizabeth line), to the point where it's actually cheaper to get Travelcard entitling you to unlimited travel around London for the day. This in turn is the case because you can't get a ticket which is just a one-way single to Heathrow Terminal 4 railway station without the right to use the Heathrow Express.

Except, you kind of can.

You see, if you use contactless to travel to Heathrow Terminal 4 railway station, this turns out to be the cheapest fare of all. It's cheaper than the single fare for a paper ticket and it's cheaper than a Travelcard. I guess this is basically the price you'd pay if there were such a thing as a single to Heathrow Terminal 4 railway station without the right to use the Heathrow Express. However, such a thing doesn't exist as a paper ticket — this fare is only accessible if you use contactless.

(Of course, I'm well aware that TfL have punitively marked up their paper tickets for decades to encourage people to use Oyster. Historically the cost of a paper ticket bought from a TfL station has been double that of the equivalent Oyster fare. However, we're talking about orange National Rail tickets here, not TfL ones, and to my knowledge National Rail isn't in the practice of putting a punitive markup on paper tickets in this way, so it's not really relevant, given we're talking about a paper ticket printed on orange stock for a journey starting outside of London.)

Why is contactless cheaper? Presumably it lets them reliably know you haven't used the Heathrow Express in a way they can't with paper tickets. However, I'm not entirely sure how that is supposed to work given that the Heathrow Express apparently serves Heathrow Terminal 4 railway station using the same platforms that the Elizabeth Line does. I'm mystified.

So basically there are now National Rail fares that are inaccessible to you unless you use a contactless payment card, in a way which is a peculiar quirk of how the train operating companies which should be paid the revenue from a ticket are weirdly hedged and guessed based on the source and destination printed on a ticket. Perhaps you could call it the Heathrow Express tax.

Innards of the rail ticketing system. Anyway, as a product of the above insane delve into the absurdities of rail ticketing in the UK, I ended up being introduced to some fascinating websites (for some value of “fascinating”).

  • BR Fares, which shows the various (paper) tickets you can get from and to any given station in the UK

  • LT Fares, the sister site which shows you the contactless fare you'll pay between any two stations in the UK

What's really fascinating about these sites is how they reveal a great deal of the internals of the UK rail ticketing system. These sites are basically a direct dump of the real data the entire UK rail ticketing system operates on, not just some oversimplified version designed to try and make all of this madness comprehensible to consumers.

For example, here's an example query for fares from Luton to Heathrow Terminal 4 railway station. Go on, take a look — fun, isn't it?

This brings me to a theme which I find keeps recurring in my life: namely, wherein I end up having to figure out (or make educated guesses about) how a whole industry's IT systems work internally just to get by — not as someone even in that industry, but simply as a customer. It's absurd how often I find myself having to do this. In fact, this is just the first of three separate instances of my having to do this just while organising this trip.1

In this instance, I started wanting a single ticket from my hometown to Heathrow Terminal 4 and ended up having to know more than I ever wanted to know about the innards of how UK railway tickets work. It's an interesting example of how the hacker mindset affects how you perceive the world; once you start, you can't stop seeing the IT systems which permeate and control everything around you. I find myself honestly wondering how most people even manage to deal with all this... I have disturbing visions of old ladies who bought tickets from the Thameslink website in good faith being told their tickets aren't valid and being given obscene fines. In fact this is probably happening at least sometimes. Many people won't have the werewithal to successfully argue their case even if the law is (as mentioned above) technically on their side.

Anyway, here's a comparison of the myriad options from the above link, using an example origin station of Luton:

  • A single to “HEATHROW RAIL”, a station group which includes Heathrow Terminal 4 Railway station; because this allows you to use the Heathrow Express, it includes the Heathrow Express tax.

  • Excluding things like family and child travelcards, and a lot of weird “SMART” fares where even I'm not sure what they are, your options for travelcards are:

    Here we get into one aspect of the complexity of UK rail ticketing which most people actually are familiar with, but which I haven't even mentioned yet: peak time restrictions. You see, you have to get a more expensive type of ticket if you want to travel at peak times. “Anytime” means you can travel at peak time, whereas “OFF-PEAK” or “OFFPK” means these tickets are only valid for the off-peak period. Then there's “Super Offpeak”. What does that mean? Oh lord this article is already long enough, I'm not going to try and get into it.

    What's the difference between “SUP OFFPK DAYTC LS” and “SUP OFFPK DAYTC FB”? I'll leave that as an excercise to you: try and figure it out by looking at their respective pages above. Go on, try it. The answer is below when you're ready.

    The answer

    One is only valid on weekends.

    You probably figured the answer out eventually, but how long did it take you?

Incidentally, the ticket incorrectly recommended by Thameslink doesn't appear above, because correctly doesn't list it if you ask for a ticket to Heathrow Terminal 4 railway station. You need to specify HEATHROW UNDERGD (ZHJ) as your destination instead, which gives you a single to HEATHROW UNDERGD, entitling you to use the Underground (but not the Elizabeth Line) to get there. No wait, stop! That's not the same ticket as Thameslink recommended. That's just a perfectly ordinary single to a specific Underground station (or rather, a group of underground stations). What Thameslink wanted to sell me was a ticket to “London Underground and DLR Zones 1-6”. What's going on?

It turns out there is another type of ticket called a “zonal single fare”, which is explained in morbid detail in a page on the BRFares website (which has a good chance of being the only public explanation of the concept actually having any chance of being comprehensible to anyone who doesn't work in the industry). You see, a zonal single fare is a ticket to some set of London fare zones, like “Zones 1-6”. Wait, isn't that what a travelcard is? No! You see, a travelcard lets you travel around those zones as much as you like for the day, whereas a zonal single fare is only valid for one journey to one station... it just can happen to be any station in those zones. It's like a kind of weird quantum ticket where its valid destination is held in a superposition and only determined when you actually travel there.

In order to get the BRFares site to show us these zonal single fares, we have to put in a special destination code of 0786 (which is a magic code which means “Zones 1-6”) when searching. This gets us this list, in particular this ticket, which is what Thameslink was actually trying to sell me. The page for this says:

“Includes one Underground/DLR journey in London Zones 1–6”

And now we've come full circle. You can go to a Heathrow Underground station on that, but if you want to go to a Heathrow railway station (as the Elizabeth line does), you need one of the tickets listed above.

I hope you've enjoyed this introduction to how UK rail ticketing works. But wait, there's more! When I described travelcards above, what I was describing is actually just one type of travelcard called an “out-boundary travelcard”, but there's also another type called an “in-boundary travelcard”, which is (I think) a travelcard purchased inside the London area and which thus doesn't need the “travel into London from your home town and back” component. Except then there is apparently something called a BOUNDARY ZONE EXTENSION TICKET. Aside from sounding like something which grants you the ability (or at least the permission) to violate the laws of physics in interesting ways, it seems it extends an in-boundary travelcard to allow some kind of limited or occasional travel outside the zones covered by the travelcard, a but more like an out-boundary travelcard. This (if the BRFares website is accurate) means you end up with a ticket listing an origin of BOUNDARY ZONE 6, which is hilarious, and makes it sound like you are escaping from some kind of condemned zone in a sci-fi dystopia film.

All of this is explained in amazing detail on the BRFares website.

Also, if you were annoyed that the information on the BRFares website was a bit too comprehensible, don't worry, it has an expert mode you can turn on to make it even more cryptic. For example.

Is there anything else about UK rail ticketing you should know? I think I've covered most things. Oh yes, there's also the scam that is Advance tickets. These are basically cheaper tickets which have the drawback that you have to book them long in advance and are often locked to a specific train, meaning if you miss your train you're screwed. I call these a scam because the only reason anyone buys these is because on routes which offer them, the prices of non-Advance tickets tend to be absurdly high.

Anyway, after all this herculean delving into the inscrutable UK railway ticketing, I finally concluded I should just get an “out-boundary” travelcard.

This then leads to the question of what ticket I should get when I return. After all, an “out-boundary” travelcard is for someone travelling into London from outside it on a given day, not someone travelling from inside London to the outside of it. An “in-boundary” travelcard is for someone starting and remaining inside London. So there's no direct opposite of the “outboundary” travelcard; a travelcard for someone starting inside London but seeking to escape it.

This leads to the confusing realisation that the correct ticket for the day of my return is in fact the exact same ticket, as an “out-boundary travelcard” has both an outgoing and a return component: as mentioned, it entitles you to travel into London, travel around London, and then return to your home station. You can of course use the outgoing component of a Travelcard this and never end up using the return component, but it turns out you can equally use just the return component and not the outgoing component. Thus surreally I will end up buying an “outboundary” travelcard for travel “from” my home station “to” London Zones 1—6, and using it to travel from London Zones 1—6 to my home station.

Which leads to one final complication: you may not be actually able to easily buy a travelcard “from” your home station “to” London Zones 1—6 while inside London. After all, why would you want to buy an out-boundary travelcard from a home station outside of London when you're inside London? Supposedly it may actually be hard to buy such tickets from ticket machines inside London; equally trying to explain to a ticket clerk in London that you want to buy such a ticket might also prove interesting (even if I'm sure their system can do it, as it should be able to dispense any valid kind of orange-stock ticket). Thus I have to make sure and buy this post-dated ticket for my return in advance at my home station before I travel into London.

Isn't UK railway ticketing fun?

1. Actually, this reminds me of another weird observation I made recently. Often I find myself having to debug absurdly obscure IT issues (whether in dev or ops) which I wouldn't have had the skill or experience to successfully diagnose or fix if I had encountered them a decade or two ago. Somehow, when one becomes more skilled as a developer or sysadmin, the universe has a weird way of starting to throw technical issues at you that actually require that greater level of skill. This leads me to the conclusion that in some strange, serendipitous way, the universe seems to have level scaling.