Skip to main content
All articles
Live teaching

Live class attendance, measured honestly

A join-to-leave span is not attendance, and the scheduled hour is not the denominator. What an honest live-class register actually measures — and why what you taught belongs on the same row.

Renu Rawat 3 September 2026 12 min read
Live class attendance, measured honestly

Every teacher who has run a live class online has been asked a version of the same question, usually by somebody who was not in the room. A parent asks whether their daughter actually attends. A student contests a detention. A funder wants to know what their sponsorship bought. An internship coordinator wants to know who is still turning up in week six. The question is always the same shape — how much of this class did this person attend, and what was it about — and for most teachers the answer lives in memory, a WhatsApp thread, and a screenshot of the participant list taken on a good day.

The obvious fix is to have the software count it. That is where the trouble starts, because attendance in a live class is deceptively easy to compute badly, and a number computed badly is worse than no number at all: it looks defensible right up until somebody checks it.

What an attendance record has to survive

Before deciding what to measure, it is worth being honest about who reads the result. An attendance figure is not a dashboard metric that lives and dies inside your own head. It gets forwarded. In practice it has to survive four different readers, each of whom will attack it from a different angle:

  • The student who disagrees. They will say they were there. If your record cannot show when they joined, when they left, and whether they came back, you have no answer beyond your recollection.
  • The parent who is paying. They want a pattern, not a day: is she attending, roughly, most of the time, and is it getting better or worse.
  • The institution or funder. They want totals across a cohort and a range, in a file, with names and email addresses that match their own list.
  • You, six weeks later, deciding whether to award a certificate. This is the reader everyone forgets, and the one who most needs to know what each class was actually about.

Every design decision below follows from that list. Nothing here is about a prettier chart; it is about a number that holds up when it is challenged.

Mistake one: a span is not attendance

The easiest thing to record about a participant is when they first appeared and when they were last seen. Subtract one from the other and you have a duration. It is one line of code and it is wrong more often than people expect.

Consider a student who joins at 10:00, realises they have the wrong link open, leaves at 10:05, gets distracted, and comes back at 10:55 for the last five minutes of a one-hour class. First seen 10:00, last seen 11:00. Measured as a span, that is sixty minutes and a perfect attendance record. Measured honestly, it is ten minutes.

One student, one class, two very different numbers 10:00 11:00 What happened 5 min 5 min away — 50 minutes Measured as a span (joined → last seen) 60 minutes · 100% present Measured as stretches 10 minutes · 17% present · 1 rejoin
The same student, the same class. The span is a lie the arithmetic tells, not a lie the student told.

So presence has to be accumulated as stretches, not as a span. Each stretch opens when somebody arrives, extends while they are still being seen, and closes when they actually leave. A return opens a new one. The time credited is the sum of the stretches; the gap between them is nobody's class time.

This has a pleasant side effect: because the stretches are kept, the report can say how many times somebody rejoined. One rejoin is a dropped connection. Five is a student who is not really in the room, and it is worth knowing which is which before you write to them.

A practical detail

The host's browser reports the room roughly every 45 seconds, and immediately whenever somebody joins or leaves. So a gap of a couple of minutes between sightings is a slow tick, and anything longer is a genuine absence. Draw that line somewhere explicit rather than leaving it to chance — we treat anything beyond two and a half minutes as a real gap, and close the stretch.

Mistake two: the scheduled hour is not the denominator

The second mistake is quieter and does more damage. A percentage needs a denominator, and the obvious one is the class length you scheduled. But scheduled classes routinely do not run to their scheduled length. You start eight minutes late because the previous session overran. You finish early because the material ran out. You cancel the last twenty minutes because half the cohort is sitting an exam.

Measure against the sixty minutes you booked and a class that actually ran thirty-two reports a full, attentive room at 53% — and every one of those students has a permanent record saying they missed nearly half of something they did not miss.

The defensible denominator is the time the teacher was in the room, because that is when the class existed. If you were not there, it was not class. It also handles the awkward case honestly: if your own connection drops for twenty minutes and comes back, the class is the union of the stretches you were present for — not the span from your first login to your last goodbye. Nobody should be marked absent from twenty minutes during which nothing was being taught.

When there is no host on record

Occasionally a room runs without a recognised host — a co-teacher opened it, or the roster only ever saw students. Rather than silently substituting something else, the class is labelled as having an estimated length, so a reader knows which figure to trust less. A quietly-guessed denominator is exactly the sort of thing that gets discovered in an appeal.

Mistake three: the register only knows people who signed in

The third gap is not arithmetic at all. A great many people join a live class by opening the link somebody sent them. They never signed into the platform, they may not have an account, and any attendance mechanism that runs inside the student's app never hears from them. For an internship cohort or an open workshop, that can be most of the room.

The fix is to make the host the recorder. The teacher's browser is the one participant that can see the entire room, including anonymous guests, and the name and email each person supplied on the way in ride along with them. So the register is written from the host's view of the room, once a minute, for everyone in it — signed in or not. It means a workshop attendee who joined from a forwarded link still lands in the record with a reachable email address next to their name.

What it looks like when all three are fixed

The Attendance screen in Prolaud showing a search box and date filters, five summary tiles reading 5 classes, 6 people, 84.4% average attendance, 4h 45m taught and 5 of 5 topics recorded, above a line chart of attendance by day and a bar chart of attendance by class.
A week of an internship cohort. The percentage is against the minutes actually taught, and every class has a topic against it.

The tiles are the answer to “how is this cohort doing” in one line: how many classes ran, how many distinct people attended anything, the average attendance across every line, how long you actually taught for, and — the one nobody expects — how many of those classes have a topic recorded against them.

Two charts side by side: a line chart of average attendance by day hovering between 75% and 95%, and a bar chart showing the same five classes as individual bars.
The trend answers the parent's question; the per-class bars answer yours — which session lost the room.

Two charts, because they answer different questions. The day line is for the pattern — is this cohort drifting, did something change after the mid-term. The per-class bars are for the outlier: one bar noticeably shorter than its neighbours is a class worth thinking about, and because the topic is recorded you can see immediately whether the room emptied during the database session or during the one you ran at 8am on a Saturday.

One class, one line per person

A single class card showing the date, room code, the times it ran, the topic taught, an average attendance percentage, and a table of students with their email, join time, leave time, minutes present and an attendance bar.
The row that answers a dispute: joined 10:30, left 11:00, thirty minutes of a sixty-minute class.

This is the view that settles an argument. Not a percentage on its own — a percentage with the times that produced it, so a student who says “I was there” can be shown that they were, for half of it, from half past. Where somebody left and came back, the row says so, with the number of rejoins next to the minutes.

The column nobody stores: what you actually taught

Here is a thing worth pausing on. Nearly every tool that records attendance in a live class records the room, the date, the people and the duration. Almost none record what the class was about.

That sounds like a nicety until you look at what an attendance record is used for. “Ravi attended 47 of 52 minutes on 3 September” is not, on its own, evidence of anything. Forty-seven minutes of what? The answer sits in the teacher's head, and by the time somebody asks — a certificate decision, a parent meeting, an audit of a sponsored programme — the head has moved on to next term.

The reason it usually is not stored is that people assume it already is. The scheduled session has a title, so surely that is the topic. But the title is the name of the recurring room — “Full-Stack Internship · Batch 45” — and it is identical for all forty-five sessions. Planning boards have topic cards, but a card is an intention: what somebody meant to cover, on a board, not what actually happened in Tuesday's class after the first twenty minutes went on questions about last week's assignment.

A class card with the topic field open for editing, showing a text box with the placeholder asking what was taught, beside a save button.
Recorded where the attendance is, because that is the only moment a teacher is reliably looking at this screen.

So it gets its own row in its own table, keyed by room and date — one topic per class occurrence, edited in place, rewritable when the wording is wrong. Deliberately not attached to the scheduled session, because a recurring room has one session record and forty-five different lessons.

Where it earns its place is on every line downstream. The topic rides on each attendance row, into the CSV, into the PDF. It also becomes searchable: typing “pointers” finds the class about pointers and everybody who was in it, which is a genuinely useful thing to be able to ask a register.

Count what is missing, out loud

A field nobody is forced to fill in will be empty most of the time, and an empty field that nothing complains about stays empty forever. So the summary counts classes with no topic recorded and says so on the screen — 4 of 5, not a quiet blank. An attendance line with no topic cannot answer the question it will eventually be asked.

Finding one student among four hundred

The attendance screen with the search box containing a misspelt query, and the results still showing the correctly-spelled student's attendance.
“fatma shiekh” finds Fatima Sheikh. A register that returns nothing reads as an absence.

Search on an attendance register has a failure mode worth naming: when a search for a misspelt name returns nothing, it does not read as “you spelled it wrong”. It reads as “she never came to class”. Teachers type quickly, and names transliterated from another script have several plausible spellings — Sheikh, Shaikh, Shiekh — none of which is a typo exactly.

So the search is deliberately forgiving. It matches on exact text first, then prefixes, then per-word with a tolerance for a character or two out of place, and finally on the letters in order — so “dstr” finds “Data Structures”. It searches names, email addresses, room codes and the topic taught, and it narrows the charts along with the table, so what you are looking at and what the numbers say cannot disagree.

The filters are in the URL, which sounds like a technicality and is not: a teacher who has narrowed to one room and one week can send that link to a head of department, and they will open exactly the view that was described to them.

Exports that match what you were looking at

A table of individual attendance lines, each showing the date, room, the topic taught, the student's name and email, join and leave times, minutes present and an attendance percentage.
Every attendance line, with the topic on it. This is the shape that leaves the building.

Two exports, and one rule about both: they obey the same filters as the screen. An export that quietly ignores the search box is how somebody emails a spreadsheet of the wrong cohort to a funder, and does not find out for a month.

The CSV is the one that goes into somebody else's system — one row per attendance line, with the topic, the join and leave times, the minutes and the percentage. The PDF is the one that goes to a human: the charts, a table of classes with what was taught in each, a table of students, and every line underneath.

The first page of an exported attendance PDF, with the institution name, the date range, summary tiles, an attendance-by-day line chart, an attendance-by-class bar chart, and a table of classes listing the topic taught in each.
Page one of the export. The footer states the method — that is the part an appeal actually turns on.

One detail in that PDF is worth copying whatever tool you use: the footer says how the numbers were arrived at. “Attendance is measured against the time the teacher was in the room, and counts only the stretches a person was actually present.” A report that states its own method can be argued with. A report that just shows 17% invites the reader to assume the worst about either the student or the software.

What we deliberately did not build

There is a category of live-class analytics that measures whether a student's tab was in focus, whether their camera was on, whether their mouse moved. It is technically straightforward and we are not going to do it.

Partly because it is wrong about people — a student listening carefully on a phone while walking is not disengaged, and a student with a camera pointed at a wall may be the most attentive person in the room. Partly because it is wrong about bandwidth: in most of the cohorts we see, cameras off is the difference between attending and not attending at all. And partly because a number that cannot be shown to the person it describes without embarrassment is not a number worth collecting.

Time present, honestly measured, is a defensible thing to record. Attention, inferred from a browser, is not.

Running this in your own classes

  1. Use one room per cohort and let it repeat. The register keys on room plus date, so a recurring room gives you one clean row per day rather than a pile of one-off sessions to reconcile.
  2. Open the room yourself, and stay in it. Your presence is the denominator; a class you dial into ten minutes late is a class that is ten minutes shorter for everybody, which is correct but worth knowing.
  3. Write the topic the same day. It takes five seconds while you are looking at who turned up, and it is the single field that makes the whole record answer questions later.
  4. Check the outliers weekly, not the average. The average tells you nothing you did not already feel. One student at 30% for three weeks is the thing worth a message.
  5. Export before the term closes, not after. A PDF with the charts is the artefact that survives; a dashboard is only useful while somebody has a login.
What it countsWhat it does not
Minutes actually in the room, summed across stretchesThe gap between leaving and coming back
The time the teacher was present, as the denominatorThe length you scheduled but did not run
People who joined from a link without an accountOnly students who signed into the platform
The same person across two devices, merged by emailTwo half-attendances for one human
Rejoins, as a count next to the minutesA judgement about why they dropped
What was taught, on every lineAttention, focus, camera state or mouse movement
The shape of an attendance record that holds up when it is challenged.

The point of all of it

An attendance register is not a metric. It is evidence, and it gets used at exactly the moments when relationships are strained — a detention, a refused certificate, a conversation with a parent who has been paying for something they suspect is not happening. Evidence that overstates attendance protects nobody, because the first person to check it stops trusting the rest of your records too. Evidence that understates it punishes students for your scheduling.

The whole job is to make the number mean what it says: this person was in this class, for this long, out of this much class, and here is what the class was about. Everything else on the screen is arrangement.

Attendance you can hand to somebody

Every live class you run is recorded as it happens — including the people who joined straight from the link. Charts, filters, CSV and a PDF report with what you taught on every line.

Start teaching live
Renu Rawat

Renu Rawat

Founder of prolaud.com. Helping teachers and creators build profitable, independent learning businesses without losing a cut of every sale to platform fees.

About the founder

Frequently asked questions

How is live class attendance percentage calculated?
Time present divided by the length of the class, where time present is the sum of the stretches a person was actually in the room — not the gap between when they first joined and when they were last seen — and the length of the class is the time the teacher was present, not the duration that was scheduled. A student who joins for five minutes, leaves, and returns for the last five minutes of an hour is credited with ten minutes, not sixty.
Does it count students who join from a link without an account?
Yes. The register is written from the host's view of the room, so anyone visible to the teacher is recorded, including guests who joined from a forwarded link and never signed in. The name and email they gave on the way in are stored with the attendance line, so they are reachable afterwards.
What happens if a student's internet drops?
A short gap between sightings is treated as a slow connection and the stretch continues. A longer gap closes the stretch, and coming back opens a new one — so the time offline is not credited, and the row shows the rejoin. Sightings arrive roughly once a minute, and anything past two and a half minutes counts as a genuine absence.
Can I record what was taught in each class?
Yes, and it is worth doing. Each class occurrence takes a topic, recorded in place on the attendance screen and stored against that room and date. It then appears on every attendance line for that class, in the CSV, in the PDF, and it is searchable — so you can ask which students were present for a particular topic.
Can I export attendance to Excel or as a PDF?
Both. The CSV carries one row per attendance line with the date, room, topic, name, email, join and leave times, minutes and percentage. The PDF is a formatted report with the charts, a table of classes and what was taught in each, a per-student summary and every line. Both exports obey whatever filters and search are applied on screen.
Does it track whether students are paying attention?
No, deliberately. Time present is measured; attention is not inferred from tab focus, camera state or mouse movement. Those signals are unreliable about people — a student listening on a phone with the camera off may be the most attentive in the room — and a number that cannot be shown to the person it describes is not worth collecting.

Keep reading

Teach live and sell your courses from one place.

Prolaud is the course platform with the classroom built in — live classes, courses and student records in one workspace.

Free Starter plan, no time limit · No credit card