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)

  1. Open the overlay on a grades page and expand the desired category.
  2. A row labeled "Equalize assignments / SEBI Mode" appears below the category header (when SEBI is globally enabled).
  3. Check the checkbox to enable SEBI for that category. The grade recalculates immediately.
  4. 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 sebiPrefs storage 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 === null or possible === null
  • Assignments with possible === 0
  • Assignments flagged as dropped by 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.