Competencies
A competency is a specific skill or knowledge area students demonstrate. Each belongs to a class and is either Core (required) or Elective (counts toward grade requirements up to a configured limit).
Competencies can be linked across classes — "Welcome Interview" in CS 255 and AI 250 are the same underlying competency, so a grade earned in one class propagates to the other automatically.
Every Core competency counts toward the projected grade. For Electives, only the best
N count, where N is required_electives in the threshold rule
(default 2). Complete fewer than N and the shortfall counts as Incomplete; complete more and only
the top N by grade rank are used — the rest are ignored rather than held against you.
Courses vs. Classes
A class is one offering in one term — "CS 255 in Spring 2026". Rosters, sets, grades and thresholds all belong to a class, because they are all specific to that term.
A course sits above it and persists across terms. Difficulty evidence and calibration attach here, because a question's observed difficulty in CS 255 needs to accumulate across every term it is taught or it never reaches a usable sample size. See Difficulty & Calibration.
Grade Records
Every grade flows through a single code path which:
- Writes an audit record of the attempt — every attempt is preserved forever
- Updates the student's standing for that competency if the new grade is higher (highest-wins)
- Propagates to linked competencies in other classes
- Checks whether a new grade lock-in has been earned
Research context is recorded onto the attempt as it is written — instructor, week of semester, prior grade, competency category, and how many questions and follow-ups were asked. A later schema change therefore cannot retroactively alter what a past attempt meant.
A grade is never downgraded. A student with Mastery can never have their grade reduced by a later attempt at any grade level.
Grade Lock-ins
When a student's overall standing first reaches the threshold for a letter grade (C, B, or A), a lock-in row is written recording the week number. Locks are permanent — they record when a student first qualified. Run 🔒 Recheck Locks from the top bar after bulk imports to backfill any missing locks.
Approaching Only
When you select a student in the Instructor Panel, the system runs a hypothetical: if every remaining incomplete competency were graded Approaching, would the student project an A? If yes, the green Approaching Only banner fires. This tells you the student doesn't need any more Masteries — you can cut the interview short.
The flag is stored on the attempt record for research analysis, and appears as ◆ diamonds in the timing scatter chart.
Threshold Evaluation
A student's projected letter grade is computed by checking their current competency standings against the class's threshold rules. Rules are checked in order (A first, then B, then C) and the highest passing grade is returned.
Example A rule: min_mastery: 4, min_others: "Approaching", required_electives: 2, max_incomplete: 0
Daily Limit
By default a student can only be interviewed once per day per competency (source = Interview, not q-visit). The Instructor Panel shows a warning if the limit is reached. An override button bypasses it when needed — the override is recorded on the attempt row.
Question Sets
A set is an ordered collection of questions assigned to a competency. The instructor loads a set at the start of each interview. Sets can be reused across multiple interviews. Follow-up questions are nested under base questions and can be sent selectively.