This is an old page. The current version can be found here.
Despite setting zonal fares a few years ago, the fare structure for rail journeys is incredibly complex and getting worse. TfL have a series of pages on their website which describe the various scales in great detail. The problem is that they don’t make it very clear that each page only applies to a subset of all the lines. They also include a lot of duplicated information about caps and travelcards which makes the pages look more complex. In an effort to simplify some of the information, this site now hosts a page with all the daily caps and travelcards for zones 1-9. And we also have a single page listing all the different adult single fares both zone by zone and scale by scale, complete with a colour coded map to help decide which scale applies to your journey.
The single fare finder on the TfL website is the bible for finding the fare between any two rail stations in the Oyster area. When you select your start and end stations and type of fare (adult, child, etc) it will display the fares for the default route and any alternative routes below. It is really important to describe your journey the right way round though, because the times when peak fares apply can be different depending on the direction of travel.
There is only really one flaw with this utility and that is that it doesn’t describe what it thinks the default route is. In most cases this doesn’t matter, but it can cause confusion in some cases. You also need to be careful when selecting stations which are split in two but with the same name (eg Lewisham NR and Lewisham DLR). The default route from Richmond to Lewisham NR is via Waterloo and Waterloo East while the default route from Richmond to Lewisham DLR is via the District Line and the DLR. The latter also offers a cheap roundabout route avoiding zone 1 via Overground, Stratford and the DLR.