SEBI Mode
SEBI stands for System for Equalizing Balanced Instructions. It is a per-category grading mode that treats every graded assignment in a category as equally weighted - regardless of their point values - by averaging their individual percentages instead of pooling raw points.
What SEBI Does
Standard (non-SEBI) category calculation: Points are pooled across all graded, non-dropped assignments:
category average = (sum of earned × multiplier) / (sum of possible × multiplier) × 100
SEBI category calculation: Each assignment's percentage is computed first, then those percentages are multiplier-weighted-averaged:
category average = sum(assignment_pct × multiplier) / sum(multiplier)
where assignment_pct = (earned / possible) × 100.
Example
| Assignment | Earned | Possible | Pct |
|---|---|---|---|
| Assignment 1 | 40 | 45 | 88.89% |
| Assignment 2 | 65 | 65 | 100.00% |
| Mode | Result |
|---|---|
| Standard | (40 + 65) / (45 + 65) × 100 = 105 / 110 × 100 ≈ 95.45% |
| SEBI | (88.89 + 100.00) / 2 ≈ 94.44% |
SEBI usually produces a lower grade when high-point assignments are scored above the category average.
Enabling SEBI
Per Category (in the Overlay)
- Open the overlay on a grades page and expand the desired category.
- A row labeled "Equalize assignments / SEBI Mode" appears below the category header (when SEBI is globally enabled).
- Check the checkbox to enable SEBI for that category. The grade recalculates immediately.
- A SEBI badge appears in the category header when enabled.
The ? button opens a help dialog explaining SEBI with the example above.
Global Enable / Disable (in Options)
Options → SEBI Settings → Enable SEBI globally checkbox.
- When enabled (default): SEBI toggle controls appear in both the overlay and Dashboard course cards. Per-category preferences can be toggled freely.
- When disabled: All SEBI UI is hidden throughout the extension and all
sebiPrefsstorage is cleared. Every category falls back to standard point-weighted calculation.
Storage
SEBI preferences are stored in a single sebiPrefs object:
{
"course:12345": {
"homework": true,
"classwork": true
}
}
Keys are course keys (course:${sectionID}). Values are objects where each key is a normalized category name (lowercased, trimmed) and the value is true when SEBI is enabled for that category. An absent key means SEBI is off for that category.
The normalization is done by SEBI.normalizeCategoryKey(name) from sebi-prefs.js:
function normalizeCategoryKey(name) {
return String(name || "").toLowerCase().trim();
}
So "Homework", "HOMEWORK", and " homework " all map to the same key "homework".
SEBI and Ungraded / Dropped Assignments
Both standard and SEBI modes skip:
- Assignments with
earned === nullorpossible === null - Assignments with
possible === 0 - Assignments flagged as
droppedby the gradebook
Hypothetical (what-if) assignments are included in SEBI calculations once added.
SEBI in the Dashboard
The Dashboard also renders SEBI toggle controls on each course card. Changes made there are saved immediately and the card re-renders with the updated grade.