The docs indicate that Toybox::WatchUi::DataField.compute() is called once per second. In testing with simulated data, it looks like it is called every ~1015ms. If I load up a .fit file generated with once-per-second recording, then I get data consistently at 1000ms.
Given this, it seems safest for an application to assume that compute() is called approximately once a second and track the elapsed time to ensure calculations are correct. Is this right?
On a related note, there are typically three measures of time when dealing with recorded data. There are wall clock time, moving time, and elapsed time. I'm certain that the former comes from System.getClockTime(), and the latter is available via Activity::Info.elapsedTime. Unfortunately, it isn't clear what System.getTimer() is. Additionally, it seems that the application needs to calculate moving time if it is needed since it isn't available via the API?