School Reference Public

Core Concepts & Data Model

The vocabulary of the ERPat School module explained: learner, guardian link, enrollment, section, grading scheme, the draft→submitted→approved→released grade state, report cards, and the audit trail — and how they connect.

Guide version: r1 Module version: 0.2.0 Updated: 2026-07-22 Estimated time: 7 min 1 views
START HERE

Core Concepts & Data Model

Learn the module’s vocabulary once and the rest of this guide reads easily. A handful of objects — learner, guardian link, enrollment, section, class record, grade scheme, report card — and two short state machines explain almost everything the School module does. Two invariants (verified and released) quietly protect the whole system.

The mental model

School is a Student Information System: it moves one learner through a lifecycle and records what happened at each step. Read the pipeline left to right — everything downstream depends on the step before it.

Set up
School year, sections, subjects
Admit
Application → requirements
Enrol
Roster placement in a section
Attend
Daily section register
Grade
Encode → submit → approve → release
Report
Report card + portals

The registrar sets up the academic structure, then admits a learner by driving an application through its checklist to approval — which materialises a roster enrollment. Teachers take attendance and encode grades; the head approves and releases. Only released grades reach report cards and the parent / student portals.

The key objects

These are the nouns you’ll meet on every page. Group them into three domains: identity (who), structure (where they belong), and records (what happened).

Identity — who the learner is

Learner

The master record of a student — the identity domain. Holds PII (name, sex, birth date/place, address, contact) plus the LRN. Statuses: active, inactive, graduated, transferred out. Managed on Learners.

#
Learner identifiers

Typed identifiers attached to a learner — the LRN (Learner Reference Number) is stored here as an identifier of type lrn. This is the DepEd number that follows a learner across schools.

Guardian

A parent/guardian directory record — name, relationship, occupation, employer, mobile, email, address. A guardian exists independently and can be linked to one or more learners.

Guardian ↔ learner link

The connection between a guardian and a learner, with access level and primary-contact / pickup / emergency flags. It starts unverified; verifying it (audited) is the authorization spine that later lets a parent portal account see that child.

Structure — where a learner belongs

????
School year & term

A school year (with a campus, dates, status) and its grading terms (quarter / trimester / semester). Exactly one year is marked current (is_current) — that flag drives every “current SY” query.

Grade level / track / strand

The seeded K-12 backbone — Kinder–G12 grade levels, and the Senior High tracks and strands. This is read-only reference data you build on, not edit. Set up in Academic Structure.

Section

A class group in a grade level (and strand, for SHS) for a school year, with an adviser chosen from active staff, a room, and a capacity (default 40). The unit attendance and grading operate on.

????
Subject & subject group

A subject has a subject group, grade level, an is_core flag and units. The subject group is what selects the DepEd Order 8 weight bucket for grading.

Records — what happened

Enrollment application  vs  enrollment

An application is the admissions request (with a document checklist) that moves draft → submitted → approved/rejected. Approving it creates the enrollment — the actual roster placement (status enrolled) of a learner in a school year. Two different things: one is a request, the other is a fact.

Attendance record

A per-learner, per-date, per-session mark — present / absent / late / excused — taken against a section’s current-SY roster. Separate from the employee/biometric HR attendance. See Learner Attendance.

Class record

A section + subject + term gradebook. For each learner you encode Written Work (WW), Performance Task (PT) and Quarterly Assessment (QA) scores. It has its own release state (below) and is editable only while draft.

Grade scheme

The applicable grading rules — policy (DO8 s.2015 or MATATAG DO10 s.2024), WW/PT/QA weights, transmutation, passing floor — resolved from seeded config by subject group + grade level + school year. Weights are data, not code.

Report card (SF9-style)

A frozen snapshot that aggregates a learner’s released quarterly grades into per-subject finals and a general average, with a Promoted / Retained remark. See Report Cards.

Support / safeguarding case  ·  visitor pass

A support case (guidance/behavioral, with severity and a status flow) — with a confidential safeguarding variant. And a visitor pass issued at the gate. Both live in their own screens with their own lifecycles.

Two state machines you must know

Almost every question about “why can’t I…?” traces back to one of these two flows. Neither lets you skip a step.

1 · Enrollment application

An admissions request moves through these states. Approving is what builds the roster; rejecting ends it.

Draft
Being prepared · editable
Submitted
Awaiting decision
Approved
Roster enrollment created
Rejected
Decision recorded (warning-audited)

There are also for_approval and withdrawn states. Approving is gated: every mandatory requirement on the checklist must be verified or waived first. The full workflow is on Enrollment & Admissions.

2 · Grade release governance

A class record’s status controls who can touch it and whether its grades are visible. The order is fixed and enforced.

Draft
Editable · teacher encodes WW/PT/QA
Submitted
school_grade_release · teacher submits
Approved
school_grade_approve · head approves
Released
Locked · visible on cards & portals
⚖️
Segregation of duties. The person who submits a class record can’t approve and release it — the encoder can never publish their own grades. Releasing is audited (release_grades, critical) and locks the grades; only released grades flow to report cards and the portals. Full detail on the Grading Engine.

What “verified” and “released” gate

Two words carry most of the module’s safety. Memorise them and most access questions answer themselves.

Verified (a guardian link)
A parent portal account can only ever see a child whose guardian link has been verified. An unverified link grants no portal visibility. Verifying is audited (verify_guardian, critical). This is the RA 10173 gate.
Released (a grade)
A grade is visible on a report card and in the portals only once it is released. Draft, submitted, and approved grades are not visible to parents or students — only released ones. Releasing is audited (release_grades, critical) and locks them.
⚠️
Both gates are enforced in code, not by convention. If a parent “can’t see their child”, the link isn’t verified. If they “can’t see grades”, the grades aren’t released. These are the two most common support questions — and both are working as designed. See Data Privacy & Safeguarding and the FAQ.

How School reuses the rest of ERPat

A guiding design choice: School owns the school domain and reuses everything else rather than rebuilding it. Several connections are fail-safe — when the other module is off, School degrades to a notice instead of breaking.

CapabilityProvided byNotes
LMS bridge (section → course, roster push)Learn (module_courses)Fail-safe Off → the LMS Bridge page shows a notice; School is unaffected.
Announcements · Messages · EventsCore module_announcement · module_message · module_eventCommunication is a launcher; each tile is gated by whether that module is on.
Facility / maintenance ticketsHelpdesk (module_ticket)Fail-safe Off → Facilities degrades to a notice.
Parent / student portal loginsCore customer accounts (allow_customer_signin)Parents/students are customer users distinguished by their guardian/learner link.
Audit trailCore system_logsSensitive actions write audited events; ordinary CRUD uses the base activity log.
NotificationsCore notificationsSchool relies on ERPat’s notification plumbing rather than its own.

The audit trail

Sensitive actions leave a Data-Privacy (RA 10173) trail. These are the audited actions and their severity — everything else is captured by the base activity log.

ActionWhen it firesSeverity
approve_enrollmentAn application is approved (roster created)info
reject_enrollmentAn application is rejectedwarning
verify_guardianA guardian ↔ learner link is verifiedcritical
view_healthA restricted learner health record is viewedcritical
release_gradesGrades are released / a report card is generatedcritical
view_safeguardingA confidential safeguarding case is readcritical
scan_visitorA visitor pass is checked in at the gateinfo
exportA compliance/masterlist export is downloadedinfo
update_settingsSchool Settings are savedinfo

Keep reading

Was this guide helpful?

Report a content problem