I think GPS is fairly reliable within a small error. I recorded Jnaneswari doing 114-115 between Badnera and Wardha in December (and of course was running well ahead of its schedule), probably 110 in reality with minor error. I also recorded Habibganj Shatabdi at 157 km, probably 150 in reality, (during the fog days, but that run was short lived as the rest of the way the train crawled at 70-75).