as a programmer, i always thought of a system where you put checkpoints in game's loading code and then every time you load the game, it calculates when each checkpoint fired for you, so that this data could be used to estimate progress more accurately when you or other users boot up the game later.