Would be interesting to see how this is all done. I'm guessing something along the lines of mapping data obtained from the TD for the area and the latest sectional appendix?
It is done using a database containing the mileage data for each bit of track between the vast majority of the intermediate timing points on the network. The mileage data is the key as that is how it knows how to work out the times for each of the intermediate timing points - only mandatory timing points are included in the open data,
RTT» fills in the gaps. Each time a new intermediate timing point is created, it needs to be added into the database, such as Reading High Level junction.
TD data is simply the movements of train describers in the different
train describer areas, it contains no geographical data for where the move took place within the area. Although the mileage data can be gathered from the Sectional Appendix.