Zoom keeps the participant list on the meeting, not in your mark book. The history report lets you open a meeting and export the people who joined. The columns this page looks for are the ones on that export: Name (Original Name), User Email, Join Time, Leave Time, Duration (Minutes) and Guest. Times are read with the AM or PM mark Zoom writes. Duration (Minutes) is a whole number of minutes. When the join and leave clocks are more precise than that whole minute, the register follows the clocks.
Someone who drops and rejoins can appear twice, unless you ticked Show unique users before export. Show unique users collapses those rows and sums the minutes. This page does the same sum when the two visits do not overlap. The gap between them is not counted as time in class. A guest, with Guest set to Yes and often no email, is kept under the name they typed. They are not attached to a signed-in student unless the names match and that student is the only email match.
Several meetings become one register. Each file is a session, except when the join and leave times overlap another file. That overlap is how a second export of the same meeting, including a Google Meet report of the same hour, stays one session instead of doubling everyone's attendance. A class on the next day does not overlap, so it counts as another session. Sessions present, out of that total, is the attendance percent.
The status line is a reading aid, not a school policy. Absent from some means they missed at least one of the meetings you dropped. Late means they joined after the grace period in a meeting they otherwise fully attended. Left early means they left before the session length, measured from the first person who joined that meeting. You can type a different length, grace and minimum before you press Build register. The table you already built is marked stale until you press it again, so an old percent is not left looking current.