Present by default
Every row starts present; a teacher only touches the exceptions: absent, late, excused, or medical leave.
04 · A class marked present in twenty seconds.
Mark attendance quickly with clear records for every class session.
Hear it from Syfty

Why it matters
Marking attendance is the one task every teacher does every single day, so it has to be fast without becoming careless. Edsyft's mark grid defaults every student to present; a teacher only touches the rows that need to change, to absent, late, excused, or medical leave. A full class gets marked in the time it takes to scan a roster, not fill in thirty separate rows.
What happens after marking matters as much as the marking itself. A session moves through five real states: draft, submitted, locked, and two system-driven states for when a calendar changes or a session gets superseded, and each transition is deliberate. Submitting and locking are separate actions, so a school can decide how long a class register stays open for review before it's sealed for the day.
Corrections are where most attendance systems get sloppy, and where Edsyft draws a firm line. A teacher can correct their own class same-day, up to a configured cutoff time, after that, the correction window closes for them specifically, while a school admin can still correct at any time, because admin corrections carry their own audit trail regardless of when they happen. Every correction, from either side, requires a typed reason; there's no editing a mark and moving on without leaving a note about why.
None of this is set the same way for every school by accident. It's a choice the organization makes. Attendance policy, including the correction cutoff and the threshold that triggers a low-attendance warning, is authored at the org level and applied consistently, unless the organization has specifically delegated that policy to a school to manage on its own. A campus doesn't get to quietly relax its own cutoff window unless head office has decided that campus should.
What it handles
Every capability below maps to a real operating decision, handoff, or record inside the module.
Every row starts present; a teacher only touches the exceptions: absent, late, excused, or medical leave.
Teachers can fix a mistake up to a configured cutoff time; after that, a correction needs an admin, and always a reason.
A session moves through real, separate states, no quiet edits once it's sealed for the day.
See which classes, across which campuses, haven't submitted today's register.
A pending register shows as the school's pending work, not as a child marked absent.
Attendance modes and cutoff rules are set once and applied consistently across campuses, unless a school is explicitly delegated its own.
How it is controlled
Permissions, approvals, and state changes are part of the workflow itself, not instructions left for a staff meeting.
Past the same-day correction window, a teacher is blocked with a clear message. A school admin can still correct the same session, audited either way.
There's no silent edit to a submitted mark. A correction is only accepted with a typed reason attached to it.
A school can't loosen its own attendance cutoff or threshold unless the organization has explicitly handed that policy to them.
Value propositions
What changes for the team once this module is running in daily work.
A teacher's correction window closes at a set time; a school admin can still fix a session later the same way, fully audited.
Attendance dropping below a set line flags automatically, at the class and campus level.