A month with few deviations is not a good month if recording coverage is low too. So the monthly report always carries a second line next to the deviation count: how many hours went unrecorded.

Count by hour. Counting runs is quick but gives a four-hour run and a ten-hour run the same weight, so it does not show coverage. The denominator is the total hours of the run windows in the monitoring plan; the numerator is the hours the files verifiably cover.

GapHow it looks in the fileWhere to look first
No file for the runNo file at allStart and download records
At the startFile begins lateRun window, logger clock, prep order
In the middleA hole inside the fileBattery, connection, where the device sits
Early finishFile closes before the run endsStopping habits, run end, download time

The four types have different fixes: an unstarted device is a matter of training and the checklist, a hole in the middle calls for a look at the device itself. Match the file list to the run list by ID, date and container number, and leave every unexplained interval open. Keep runs with no file, partial files and unresolved clock differences on separate lines.

For example, if the plan calls for 100 monitoring hours and files cover 92, coverage is 92%; the other 8 hours yield no temperature result. Zero gaps is not a realistic target because batteries die and files corrupt; the meaningful target is to write down which gap types are acceptable.

The number of unrecorded hours sits on the first page of the report, right next to the deviation count. The two are read together: if the recording rate falls while the deviation count falls too, the number of unmeasured runs has grown.