Although distance-based pricing comes with it's own problem, if we don't blindly use the actual track distance, but assign a tariff number to each piece of track and runs a "distance based fares" model on the resulting graph, geography-based loopholes (split ticketing into the same ticket types priced by different companies) can be eliminated.
And to avoid "break of journeys" complications, long distance fares should approach fare = rate * distance as distance approach infinity, with a smooth curve starting from a flat fare for short distances.
distance * rate per km + base rate * e ^ (-distance * rate per km / base rate)
The above formula has an effect that the fare is flat at 0 km, and approaches true distanced-based fares at infinity distance as the second term approaches 0.
For example, if we set the base fare to be £1.00, with rate per km to be £0.20, the formula will be
0.2 * distance + e ^ (-distance * 0.2)
With this formula (rounded to the nearest 1p), the fares will be:
0 km: £1.00
1 km: £1.02
2 km: £1.07
3 km: £1.15
4 km: £1.25
5 km: £1.37
7 km: £1.65
10 km: £2.14
15 km: £3.05
20 km: £4.02
200 km: £40.00
Note that the above formula has the two (distance * rate per km) which is a monetary value and can be substituted by a common letter, which means that if we don't use strictly a distance-based fare, each piece of track can be assigned an incremental fare, and given a "base fare" the formula will take care of itself to decide how much of the "short distance fee" to be added into the incremental fare. With such a formula there can be no split ticketing possibilities for cheaper fares. Also, breaking long journeys midway overnight won't result in a higher fare as well due to how the formula works - If you travel from Edinburgh to York, then York to City Thameslink on another day, the total price will be exactly the same for an Edinburgh to City Thameslink ticket, but if you first travel from Edinburgh to City Thameslink, then from City Thameslink to London Blackfriars on another day, you will need to pay another base fare (because the distance from City Thameslink to London Blackfriars is close to 0).
Then, it is up to the pricing manager to decide the fare by assigning numbers to each section of track, or for advance ticket, each section of each service, and all flexible tickets will have an exact routing where the passenger cannot deviate from it (similar to other distance-based systems in the world). There will be no choice of routes on any tickets.
For peak and off-peak differences, the pricing manager can decide, for each section of the track, the peak and off-peak rate as well, and because the price difference is trivial (under most cases, 0, if the splitting point is not close to one end) by splitting, multiple tickets can be issued according to the exact station where the train is at the cut off time, and it should be an accreditation requirement that peak / off-peak split tickets be offered when appropriate.
For Advance tickets, there will be no longer quotas and fare buckets - the price setter simply set an incremental price between each section on each service using yield management software, limited by the applicable peak / off-peak rate on the section of the track travelled, and the fare will be just the sum of the sections offered plus any applicable leftover base fare for short distance journeys (if travelling on an IC train for a short journey).
There will be no point in prohibiting break of journeys even for Advance tickets because a longer distance Advance fare can't undercut a shorter distance Advance fare on the same train (assuming that the fare on each section can't be negative - it can be zero without problem - if SWR wants to set its advances to have the same fare from a long distance origin to Clapham Junction and to London Waterloo, it can set the "incremental fare" between Clapham and Waterloo on those trains to 0. It will result in Advance tickets being available on long distance trains even for a Clapham - Waterloo journey (unless blocked by a set down only restriction) but the base fare will still be charged according to the formula, so it won't result in free travel).
In addition, the rate can also be differentiated by the service category as well, that means an IC service can charge higher than a regional service on the same track, and brand-restricted tickets can be calculated and issued. For tracks with both types of services, a brand-restricted rate can be set on those tracks, while on tracks with only one kind of service, only one rate (all brands) will be set. So, for example, the track between Peterborough and Huntingdon can have the following rates:
- Any brand First Class Anytime (as IC trains pass through the station so a rate is required, even the trains don't stop at Huntingdon)
- Any brand Standard Anytime
- Non-Intercity First Class Anytime
- Non-Intercity Standard Anytime
- Non-Intercity First Class Off-Peak
- Non-Intercity Standard Off-Peak
While the track between Watford Junction and Watford North will only have one rate:
- Anytime (assuming that no peak times exist in that route)