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.
Grade Records
Every grade flows through a single function grade_record() which:
- Writes an audit row to
grade_attempts— every attempt is preserved forever - Updates
competency_gradesif the new grade is higher (highest-wins) - Propagates to linked competencies in other classes
- Checks whether a new grade lock-in has been earned
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 grade_attempts row (approaching_only = 1) for research analysis, and appears as ◆ diamonds in the timing scatter chart.
Threshold Evaluation
A student's projected letter grade is computed by threshold_evaluate() which checks their current competency_grades against the class's grade_thresholds rules. Rules are checked in sort 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.