Passenger team

Is there a fairer ticket price capping model than Transport for London’s?

When TfL introduced fare capping it sent ripples through the public transport industry as a very complex fare system was made surprisingly simple.

16th Jun 2016

When TfL introduced fare capping back in 2005, it sent ripples through the public transport industry. For the first time a very complex fare system currently spanning 9 zones, 3 transport modes (i.e. bus, tram and train), and including off-peak tickets, had been made surprisingly simple and transparent.

The basic idea was that your Oyster card would be charged at most the nearest equivalent Day Travelcard for a day’s travel. This meant that you didn’t have to worry in advance about purchasing the best value fare, which could be tricky if your travel patterns were somewhat irregular. Over the years the system has evolved to reflect changes in Londoners’ travel behaviour, introducing a Monday to Sunday cap, off-peak cap and reducing the PAYG daily cap, in some cases (i.e. when rail journey is involved) making it an even better value than the Day Travelcard itself.

The TfL fare capping system quickly became the Holy Grail of the industry. Perhaps the biggest success of the idea was the public trust it managed to gain, to an extent that most people don’t even bother checking their bank statements to make sure that they indeed got a good deal. So far, so good. It is possible to do better though.

Consider a travel pattern in which somebody uses the bus on 4 different days of the week and the available tickets are: 1 day = £3.90, 3 day = £8.00, 7 day = £15.00. In the PAYG scenario this would cost 4 x £3.90 = £15.60, so a £15.00 cap at the value of a 7 day pass is a good deal.

Four different days of travel in one week; Monday, Wednesday, Friday and Saturday
Four different days of travel in one week

If the travels were more clustered as in the example below however, the situation changes. While the £15.00 cap still works out cheaper than four 1 day tickets, getting a 3 day pass on Wednesday would save the traveller even more: £3.90 + £8.00 = £11.90!

Four different days in a week, with 3 consecutive
Four different days in a week, with 3 consecutive

The problem of retrospective calculation of the optimal fare (i.e. optimal sequence of tickets of various types covering all the journeys actually taken) is a difficult one. Imagine that there are 5 ticket types (ranging from 1 hour to 30 days) and that the capping period is 30 days (which makes sense if there is a 30 day pass on offer). This translates into 30 x 24 = 720 1 hour slots when a traveller may or may not require a ticket. The number of all possible ticket sequences is hence enormous, 6720 to be exact, which is more than the number of atoms in the observable universe! Way more.

Exhaustively enumerating all possible sequences is hence clearly out of question and people normally settle for a fast approximate solution, which however is not guaranteed to be globally best. In our case, this would defy one of the goals of deploying such a system – building public trust – as it’s easy to imagine a situation in which a user comes up with a better value sequence than the system. Can we hence guarantee that the cap we apply is truly the best possible deal?

Our R&D team has been working on this problem for some time now. The key to success here was exploiting the fact that not all of the 6720 ticket sequences are valid. In fact, most of them are invalid as they either have no active ticket in a slot when the journey actually took place, or multiple active tickets in any given slot. Taking advantage of the above we were able to come up with a scalable algorithm, which guarantees finding the optimal sequence of tickets in no time!

An example can be seen in the figure below, where the blue dots represent journeys taken over a 30-day period (sliced into 1-hour slots), while the red dots and lines denote active tickets. In this simulation the following selection of tickets was available: 1-hour = £2.40, 1-day = £3.90, 3-day = £8.00, 7-day = £15.00, 30-day = £56.00. Although at first glance a 30-day pass appears to the best deal, due the irregular character of the journeys, it was possible to do better!

Optimal ticket sequence over a 30 day period which worked out cheaper than a 30-day pass at £56.

To find out more about the work we’re doing to bring account-based ticketing to every transport company, give us a call. We’d be happy to talk.

Newsletter sign up image


We care about protecting your data. Here’s our Privacy Policy.

Start your journey with Passenger

If you want to learn more, request a demo or talk to someone who can help you take the next step forwards, just drop us a line.