Three workflows share enrollment but not state
Attendance, exams, and payments intersect around the same learner but represent different evidence and ownership. A robust education platform keeps their state machines independent, then expresses policies such as exam eligibility as explicit rules over those records rather than mixing every field into one student status.
Model attendance, assessment, and finance independently
- Attendance is evidence per scheduled session with presence/absence/late/excused semantics.
- Assessments have attempts, submissions, grading, moderation, and publication states.
- Finance has charges, invoices/dues, payments, waivers, refunds, and outstanding balance.
- Eligibility rules consume these domains but should not rewrite their history.
- Overrides need reason, permission, actor, and audit event.
A student-day through the platform
Attendance, assessment, and finance record their own truth; an eligibility service reads them at a decision point.
Enrollment connects three independent evidence streams
Attendance, assessment, and finance record their own truth; an eligibility service reads them at a decision point.
Exam eligibility based on attendance and fees
Cross-domain rules that become brittle
Education-operations checklist
- Keep session attendance, assessment attempts, and finance ledger separate.
- Express eligibility as a versioned policy.
- Preserve history for re-sits, refunds, waivers, and corrections.
- Audit overrides.
- Test boundary dates, late payments, excused absence, and policy changes.
