Upvote:6
The first thing to do is check whether there's actually an avoiding-zone-1 fare defined, otherwise you'd be going out of your way for no reason (*). You can do this at the TfL Single Fare Finder, which for your example tells us that the defined fares for Cockfosters to Upminster are:
the default fare (via zone 1) at £5.10/£3.10
"Avoiding Zone 1 via Finsbury Park, Blackhorse Road and Barking or via Finsbury Park, Tottenham Hale and Stratford" at £2.80/£1.50
"Avoiding Zone 1 via Highbury & Islington and Stratford" at £2.80/£1.50
(peak / off peak prices depending on when your journey starts. Note that where the single finder says 'via X and Y', you typically must validate at X and Y in order to receive this cheaper fare)
These options can then be fed into your favourite journey planner as 'via' points. For this particular journey, at the time of writing there is no service on the London Overground on the Barking line, so the first alternative route is right out.
So you'd have to go either
or
and then either via Romford or West Ham to get to Upminster.
* for example, for Sidcup to Tufnell Park you can come up with an avoiding-zone-1 route via Lewisham, Stratford, Camden; but there's no fare defined so you'd still pay the full using-zone-1 fare. As the Single Fare Finder warns, "Some journeys are charged via Zone 1 irrespective of the route taken."