School Reference Public

Grading Engine

How grading works in ERPat School: the class record (section+subject+term), encoding Written Work / Performance Task / Quarterly Assessment, the config-driven engine that runs DepEd Order 8 s.2015 and MATATAG DO10 s.2024 side by side, transmutation and descriptors, and the draft→submitted→approved→released governance.

Guide version: r1 Module version: 0.2.0 Updated: 2026-07-22 Estimated time: 8 min 2 views
OPERATE THE SYSTEM

Grading Engine — DepEd Order 8 & MATATAG

Grading (school/grades) is where teachers encode marks and the school head releases them. Under the hood is a small, config-driven grade engine that runs both Philippine grading policies — DepEd Order 8, s.2015 and MATATAG DepEd Order 010, s.2024 — from the same code, because the weights and transmutation rules are stored as data, not baked into the program. This page explains the class record, how a grade is computed, and the release governance that decides when a grade becomes visible.

The class record

Everything in grading revolves around one unit: a class record, which is a combination of section + subject + term. You pick all three; the page loads that section's enrolled roster for the current school year, together with the grading scheme and weights that apply to that subject at that grade level.

Section

The class list — its enrolled learners for the current school year become the roster you grade.

Subject

Its subject group decides which DO8 weight bucket applies (Languages, Science/Math, MAPEH, …).

Term

The grading period — a quarter (DO8) or a trimester (MATATAG elementary).

For each learner you encode three percentage scores, all on a 0–100 scale:

WW
Written WorkQuizzes, seatwork, written outputs.
PT
Performance TaskProjects, demonstrations, performances, applied outputs.
QA
Quarterly AssessmentThe periodic / quarterly test.

Saving the class record hands those three scores to the engine, which applies the resolved weights and transmutation rule and stores each learner's weighted scores, initial grade, and final quarterly grade. A class record is editable only while its status is draft — once it moves down the release pipeline it locks (see Release governance below).


Two policies, one engine

The Philippines is mid-transition between two assessment policies, so ERPat School runs both side by side. Which one a class uses is decided by the grading scheme resolved for that subject group, grade level, and school year — not by a global switch.

AspectDepEd Order 8, s.2015MATATAG — DepEd Order 010, s.2024
ComponentsWritten Work · Performance Task · Quarterly AssessmentWritten Work · Performance Task · Quarterly Assessment
WeightsVary by subject group (see the example table below)Uniform 25 / 50 / 25 (WW / PT / QA) across subjects
Grading periodQuarter (four per year)Elementary on a trimester; phased in by grade and school year
TransmutationTransmutation table (initial grade → final grade)Floor-60 linear: final = 60 + 0.40 × initial
Floor / capLowest grade 60; capped at 100Lowest grade 60; capped at 100
RolloutThe established policyNewer policy, phased in by grade level and school year

The default policy for a fresh install is set by the school_default_grading_policy setting (do8_2015 or matatag_do10_2024) on the School Settings page, but the grade a learner actually gets is always driven by the specific scheme matched to their subject and grade — see the Schemes reference tab on the Grades page for the full list.

DO8 example weights by subject group

Under DepEd Order 8, the WW / PT / QA weights differ by subject group. These are the well-known DO8 buckets, seeded as reference data:

Subject groupWritten WorkPerformance TaskQuarterly Assessment
Languages · Araling Panlipunan (AP) · Edukasyon sa Pagpapakatao (EsP)30%50%20%
Science · Mathematics40%40%20%
MAPEH · EPP · TLE20%60%20%
⚙️
Weights are configuration, not code. The engine (School_grade_engine) never hardcodes a percentage. It is handed the resolved scheme's weights, transmutation rule, and floor, and does the arithmetic. The numbers above are the seeded DO8 buckets shown on the Academic Structure Reference tab and the Grades Schemes tab — they are data your school can maintain, which is exactly why the same engine can also run MATATAG's uniform 25 / 50 / 25 without a code change.

How a grade is computed

For each learner, the engine turns the three percentage scores into a single whole-number grade in five short steps:

  1. Start with the three percentage scores

    Written Work, Performance Task, and Quarterly Assessment, each 0–100.

  2. Weight each score

    Multiply each percentage score by its component weight (e.g. WW × 0.40). This gives three weighted scores.

  3. Add them into the initial grade

    Sum the three weighted scores. The total is the initial grade (a raw number before transmutation).

  4. Transmute to the final grade

    Apply the scheme's transmutation rule — the DO8 transmutation table, or MATATAG's final = 60 + 0.40 × initial — to map the initial grade to the final quarterly grade.

  5. Round, floor, and cap

    DepEd grades are whole numbers: the result is rounded, floored at 60 (never lower), and capped at 100.

????
The DO8 transmutation table, in plain terms. It maps the initial grade to the final grade along the standard anchor points — an initial grade of 60 transmutes to 75 (the passing grade), an initial of 100 stays 100, and values below 60 are pulled up toward the 60 floor. MATATAG uses a simpler straight-line rule: final = 60 + 0.40 × initial. In both, the lowest possible grade is 60 and the highest is 100.

A worked example

A Grade 8 Mathematics class (a Science / Math subject group under DO8, so weights are 40 / 40 / 20). A learner scores WW = 80, PT = 85, QA = 90:

StepCalculationResult
Weight Written Work80 × 0.4032.0
Weight Performance Task85 × 0.4034.0
Weight Quarterly Assessment90 × 0.2018.0
Initial grade (sum of weighted)32.0 + 34.0 + 18.084.0
Transmute (DO8 table)initial 84 → final90
Descriptorfinal grade 90Outstanding

The learner's quarterly grade for that subject is 90 (Outstanding). The same three scores under a different subject group — or under MATATAG — would weight differently and transmute differently, which is the whole point of keeping the scheme in configuration.


Descriptors & passing

Every final grade carries a DepEd descriptor, and the passing mark is 75. These are fixed by policy:

Final gradeDescriptorPassing?
90 – 100OutstandingPass
85 – 89Very SatisfactoryPass
80 – 84SatisfactoryPass
75 – 79Fairly SatisfactoryPass
Below 75Did Not Meet ExpectationsFail

These descriptors also print per subject on the SF9-style report card, and the passing threshold of 75 is what drives a card's Promoted or Retained remark.


Release governance

A grade is not visible the moment a teacher types it. It travels a short, ordered approval pipeline, and there is no skipping stages. Each transition is recorded in the grade-approvals history with the person, the time, and optional remarks.

Draft
Teacher encodes WW/PT/QA · editable
Submitted
Teacher submits · school_grade_release
Approved
Head approves · school_grade_approve
Released
Head releases · locked & visible
DraftSubmitted
The encoder submits the class record for release. Requires school_grade_release. Grades stay hidden from families.
SubmittedApproved
The school head approves the submitted grades. Requires school_grade_approve.
ApprovedReleased
The head releases. This locks the grades, is audited (release_grades, critical severity), and is the moment the grades become visible to report cards and the portals. Also requires school_grade_approve.
⚖️
Segregation of duties — the encoder cannot publish their own grades. Submitting (school_grade_release) and approving/releasing (school_grade_approve) are different permissions held by different people. A teacher submits; a principal or school head approves and releases. This is enforced in the workflow, not left to policy — it protects the integrity of every mark that reaches a family. See the Teacher and Principal playbooks for each side of the hand-off.
????
Released grades are locked and the release is on the audit trail. Only released grades flow to report cards and the parent / student portals — nothing earlier is ever exposed. The release event is written to the RA 10173 audit log at critical severity, so who released what and when is always recoverable. See Data Privacy & Safeguarding.

The Schemes reference tab

The Grades page includes a read-only Schemes tab so you can see exactly which policy and weights govern each subject. Each row lists:

ColumnMeaning
NameThe scheme's label.
PolicyDO8 s.2015 or MATATAG DO10 s.2024.
Subject groupThe subject group it applies to, or uniform (all subjects, MATATAG-style).
Period typeQuarter or trimester.
WeightsThe WW / PT / QA split, e.g. WW 40% / PT 40% / QA 20%.
Passing gradeThe passing threshold (75).

Common issues

“This class record is locked”
The class is no longer draft — it has been submitted, approved, or released, so scores can't be edited. Grades are editable only while draft. If a correction is genuinely needed after submission, that is a governance decision for the head, not an edit.
“No scheme” when you try to save
No grading scheme is configured for that combination of grade level, subject group, and school year, so the engine has no weights to apply. An administrator adds/enables the scheme (see the Schemes tab and Administration) before grades can be encoded for that class.
“Pick a section, subject, and term”
All three parts of the class record are required before the roster and scheme can load.
I can submit but not approve (or vice-versa)
By design — you hold one side of the segregated permissions. The other stage belongs to a different person. This is the segregation of duties, working as intended.

Related pages

Was this guide helpful?

Report a content problem