Attendance
REMMU lets you track which students attend each class session. Attendance records are visible to both admins and members.
🔧 Marking Attendance
QR Code (Recommended)
Each class and location has a unique QR code. Students scan the QR code on their phone to check in automatically. No manual entry needed.
- Class QR code: Locations → [Location] → Classes → [Class] → QR Code
- Location QR code: Locations → [Location] → QR Code
Manual Entry (Roster)
Admins and team members can mark attendance manually from the Attendance page. Go to Attendance, find the class session, and click Take Attendance to open the roster.
The roster header shows the session date, day of the week, and start/end time so you always know exactly which session you're marking.
The roster shows three groups of students:
Group | Who |
|---|---|
Enrolled | Regular class members |
Package Students | One-time attendees using a package |
Replacement Students | Attending via a replacement request — shown with a "Replacement" badge |
Click each student's row to toggle their status (Present / Late / Absent). You can also Mark All Present in one click. Use the search bar at the top of the roster to quickly find a student by name. Add optional session notes, then click Complete Session — unmarked students are automatically set to absent.
Printing a Session Roster
From any open roster dialog, click the printer icon in the header to print the attendance sheet for that session. The printout includes the class name, date, time, location, a summary, and a numbered student list with each status and check-in time.
QR Scanner (Admin)
From the roster dialog, click Scan to open the built-in QR scanner. Point the camera at a student's ID card QR code to instantly mark them present — no manual searching needed. The scanner shows clear real-time feedback for each scan (marked present, already marked, not in this roster, or a scan error).
The QR scanner is especially useful for large classes. Pair it with printed Student ID Cards (Students → ID Cards) for fast check-in at the door.
Package credit indicators
For students on package billing, the roster shows their current credit status — remaining sessions, exhausted, expired, or no package assigned.
Per-session students — Generate Invoice
Students on Per Session billing show a receipt icon on their roster row when they don't have an invoice for this session yet. Admins and team members can click it to generate the session invoice on the spot — even before marking attendance — so the student can pay at the door.
- Once generated, the row shows the invoice number and whether it's Paid or Unpaid
- Marking the student Present later reuses the same invoice (no duplicates)
- Marking the student Absent does not touch the invoice — it stays pending or paid as-is
- The button only appears for today's or past sessions
By default, marking a per-session student Present also creates the invoice automatically. To make the Generate Invoice button the only way invoices are raised, turn off Auto-invoice on attendance in Settings → Billing.
Session Notes
The roster has a collapsible Session Notes section where instructors and staff can record what was taught, observations about a student, or anything worth remembering for the next session. Multiple staff can contribute their own notes, each shown with the author and timestamp; authors can edit or delete their own, and admins can edit any note.
Enable or disable the session notes feature for your academy under Attendance Settings → Session notes.
Move Student to a Different Session
Need to shift a student from the session they're booked into to a different one — for example, they came to a different time slot than usual? Use Move Student from the roster's actions menu to reassign them without re-marking attendance manually.
- Open the session roster
- On the student's row, open the actions menu and tap Move
- Pick the target date and an available session from the list, shown with class name, time, location, and remaining capacity
- Confirm — the student is removed from the original session and added to the target session's roster
The move is recorded as a replacement so it's auditable. Available to admins and team members only.
Use Move Student for one-off session shifts. To change a student's regular class enrolment, edit their enrolment from the student profile instead.
Adding a Substitute Instructor
If the regular instructor is unavailable, assign a substitute for that session from the roster's Add Substitute Instructor button without changing the class permanently.
Removing an Instructor from One Session
If an instructor assigned to the class isn't teaching a particular session (e.g. they only cover some weeks), remove them from just that session: in the roster, click the remove icon next to their name and confirm. They're taken off this session only — their assignment to the class isn't affected. This works on web and mobile, including sessions that haven't been opened yet.
A removed instructor:
- Doesn't count towards the session's instructor total (e.g. "1/2 instructors")
- Doesn't need to check themselves in before the session can be completed
- Doesn't show a "Not recorded" entry for that session in the instructor attendance report, and isn't paid for it
Editing attendance after completion
Once a session is completed, admins and team members can still edit it from Attendance → History → Edit Attendance.
Resetting attendance
Admins can reset a session's attendance from the roster dialog's Reset button. If package students were marked present, their session credits are automatically refunded.
Resetting attendance removes all check-in records for the session. This cannot be undone.
Who Can Mark Attendance
Configure which roles can mark attendance under Attendance Settings — admin only, admin + team, or all staff (admins, team, and instructors).
📅 Session Management
Session statuses
Each session on the Attendance page shows a status badge — Not Started, In Progress, Completed, Cancelled, or Rescheduled — so you can tell at a glance where it stands.
Ad-hoc sessions
Admins and team members can create a standalone session outside the regular class schedule — useful for makeup classes, workshops, or private/package lessons. Click Add Session and choose Replacement Class (an extra session for an existing class, pulling in enrolled students automatically) or Extra Session (a one-off session at a location, with an optional class attached).
Fill in location, class, date, and start/end time, then save.
Attaching a class to an Extra Session is what makes it count toward payroll and show correctly in the attendance report — without a class, the session has no instructor or rate source.
Retimes and extra sessions: add a reason
The Retime tab and the Add Session dialog (Replacement Class or Extra Session) also have optional Reason and Note fields. When one is saved, a View Reason popover appears on the Retimed or Replacement / Extra Session badge in Attendance → Today, the same as for cancelled and rescheduled sessions.
Cancelling a Session
When a class can't run, cancel the session from the ⋯ menu → Cancel Session, choose a cancellation reason, optionally add a note, and choose whether to notify students and instructors by email.
Rescheduling a Session
Instead of cancelling outright, use ⋯ → Reschedule to move the session to a different date and, optionally, time — with the same choice to notify. The new date can be earlier or later than the original.
You can only reschedule a session that hasn't had attendance marked yet. If a session already ran, leave it as the historical record and add a new session on the new date instead.
Reinstating a Cancelled Session
If a session was cancelled by mistake, or the class is back on, use ⋯ → Reinstate Session to return it to its scheduled status — no notification is sent automatically, but you can re-send one afterward.
Reinstate is only available for plain cancelled sessions. Rescheduled sessions cannot be reinstated — manage the replacement session directly instead.
Where the reason shows
The cancellation or reschedule reason (and any note) is shown next to the class name for that day in Attendance → Today, on the student profile's attendance timeline, and in the Attendance Report (By Student, By Class, and the CSV export) — so anyone looking back can see why the session didn't run as planned.
Re-sending notifications
After cancelling, rescheduling, or reinstating a session, use ⋯ → Re-send Notification if students didn't receive the first one.
🔄 Session Change Requests (Instructor)
Instructors can request to retime or reschedule their own sessions from their Today / Upcoming list, without needing an admin to make the change directly. (Cancelling a session is admin/team only — instructors can't cancel directly.)
Requests go into an approval queue rather than taking effect immediately — a Pending review badge shows the requested new time, and the current time stays in effect until an admin reviews it.
Admin approval
Admins see pending requests under Attendance → Time Changes, with the instructor, class, current time, proposed time, and reason. Approve moves the session and emails the instructor; Decline keeps it as-is and emails the instructor with the admin's note.
📆 Bookings (Instructor Slot Approvals)
If your academy uses Instructor Availability with slot classes that require approval, a Bookings tab appears on the Attendance page.
Members book directly into an instructor's open availability slots. When your academy requires approval before a booking is confirmed, requests land here for review — admins, team members, and (if instructor approval is required) the assigned instructor can see and act on pending bookings, approving or declining with a reason.
If neither approval setting is enabled, bookings are confirmed automatically and this tab is hidden.
🔄 Replacement Requests
Members can request to attend a different class session when they miss their regular one.
Member flow
Members submit requests from the mobile app or web portal, choosing how to pick their replacement time — browsing existing scheduled sessions, booking from the instructor's declared availability (if enabled), or proposing a custom time (if enabled). Depending on your settings, they may also need to select a reason and upload supporting documentation (e.g. a medical certificate).
Admin approval
Replacement requests are managed from Attendance → Replacement Requests, with Pending and All tabs. Each request card shows the student, missed class and date, and the replacement session selected, along with the reason and any attachment.
Approve automatically adds the student to the replacement session's roster (deducting a package credit on attendance); Decline notifies the student. Both support an optional admin note. Members are notified by email at submission, approval, and decline.
Instructor counter-offer
When a member proposes a custom time or books from an instructor's availability, the instructor reviews the request first (shown as Awaiting Instructor). Besides agreeing or declining, the instructor can click Propose time to suggest one alternative date and time, with an optional note, then Send Proposed Time.
The request then shows Time Proposed, and the member sees "The instructor proposed: …" in My Attendance with Accept and Decline buttons:
- Accept — the replacement is scheduled at the proposed time
- Decline — the request is closed, the same as if the instructor had declined
There's only one round — the member can't counter back. Both sides get a push/in-app notification and email at each step.
Configuring Replacements
Go to Attendance → Settings to control whether replacements are enabled, how far ahead members can book, minimum advance notice, monthly limits, which classes are eligible, whether members can propose a custom time, and whether a reason (with optional required attachment) must be selected.
Quick Notes (approval & rejection templates)
Pre-write templates for approving and declining requests under Attendance Settings, so you're not typing the same response repeatedly — insert them with one tap when reviewing a request.
⚙️ Attendance Settings
Attendance → Settings is where you configure attendance-related behaviour for both members (self check-in, replacement requests) and staff (who can mark attendance, notifications, session notes).
📍 Geofenced Check-in
Restrict self check-in to within a radius of the location, to help prevent members checking in from somewhere else. Turn it on tenant-wide under Attendance Settings, then configure the radius and coordinates per location under Locations → [Location] → Edit.
QR code and Student ID Card scans are staff-operated front-desk check-ins, so geofencing doesn't apply to them.
🔔 Notify when attendance is marked
Optionally send a push notification to a member (and their guardian) the moment they're marked present or late — useful for parents who want real-time confirmation. Off by default. Only fires on a fresh mark, not when correcting a mistake, and doesn't fire for absent or for self check-ins (which already show an on-screen confirmation).
🌅 Notify instructors of today's classes
Optionally send instructors a daily push notification listing the classes they're teaching that day. Off by default, and separate from the member "you have class today" reminder. Classes paused by a holiday are skipped.
⏰ Remind instructors before class
Optionally remind the assigned instructor shortly before each class starts, so they don't forget to take attendance. Off by default. Covers regular, moved, and one-off sessions, and skips cancelled/completed/holiday-paused classes. Requires the instructor to be logged into the mobile app with notifications allowed.
📊 Viewing Attendance
For Admins
- Attendance → Today — today's classes at a glance, grouped by location, with attendance stats per session. Classes affected by a holiday or other blocking calendar event are flagged, with an option to reveal them anyway.
- Attendance → Insights — attendance rate, trends, and per-class performance over a chosen period, plus two side-by-side panels (switchable between students and instructors):
- Needs Attention — anyone below 70% attendance, for early intervention
- Top Attendance — the best-attending students or instructors (minimum 2 sessions), great for recognising and rewarding good attendance
- Class page → Attendance tab — full history for a specific class
- Student profile → Attendance tab — all sessions a student has attended
For Members
Members can view their own attendance history in the REMMU mobile app or on the web at My Attendance.
📦 Attendance and Packages
For students on a Package billing type, each attendance automatically deducts one session from their package balance. When the package runs low, they'll be prompted to purchase another.
→ See Packages & Sessions