How are the productive-, nonproductive- and stopped hours in a 'Asset Performance Report' calculated?

How are the productive-, nonproductive- and stopped hours in a 'Asset Performance Report' calculated?

The airtag itself always calculates in seconds. Every second,  it checks whether it is productive or non-productive and then adds to the correct counter 1. For example, with the non-productive counter it will have a value of 1200 after 20min. Every time he sends his value to aircloud, he has to convert it to hours (so divide it by 3600). So he should send 0.33 for productive hours. Since we don't accept comma numbers to send, this number is truncated as it were (so 0, 0.99 will also be converted to 0, 1.01 will be converted to 1).
The reports normally use those values we send to aircloud
So if he is 20m non-productive and 23h40min productive he will be 1200sec non-prod and 85200sec prod. and these will be rounded to 0 and 23 hours.

The reports might seem "inaccurate" but the actual data is not.
An AirTag completes a 'measurement cycle' in roughly one second. This means that e.g. the compressor status is measured every second. Every minute, the AirTag will send a package of this information to the cloud (Aircloud).
There is a difference between all the measured data, and the data displayed on a report. You are concerned about an 'inaccuracy'. But in reality, the measured data is not inaccurate. It is only the data displayed on a report that is subject to rounding to make it easy to present. E.g. when calculating specific efficiency, a measured 23,71 hours will be used in its calculation. And not a displayed 23 hours.