Skip to content

Requirements Form ​

Field reference for degree requirement blocks and items.

Requirement Block Fields ​

FieldTypeRequiredMax LengthValidationNotes
Program CatalogSelect (FK)Yes-Must existParent program/catalog year
Parent BlockSelect (FK)No-Must existParent block for nesting
Block TypeSelect (Lookup)Yes-BLOCK_TYPEGENERAL_ED, MAJOR, MINOR, etc.
NameTextYes200-Block name (e.g., "Core Requirements")
DescriptionText AreaNo1000-Description of requirement
Min CreditsDecimalNo5,2>= 0Minimum credits required
Max CreditsDecimalNo5,2>= Min CreditsMaximum credits counted
Min CoursesIntegerNo->= 0Minimum number of courses
Max CoursesIntegerNo->= Min CoursesMaximum courses counted
Sort OrderIntegerYes--Display order
Minimum Grade (min_grade_id)Select (FK)No-A grade in grading_system_gradesMinimum grade a course must earn to count toward this block and every block beneath it. NULL = any passing grade (or inherit). Imported from Colleague ACRB_MIN_GRADE (migration 286)
Allowed Grades (allowed_grades)Text arrayNo10 per letter-Letter grades that count regardless of the minimum -- the ", S" in "Minimum Grade C-, S". Imported from Colleague ACRB_ALLOWED_GRADES; not editable through the API (migration 286)

Block Type Values ​

CodeDescription
GENERAL_EDGeneral education requirements
MAJORMajor/program requirements
MINORMinor requirements
CORECore curriculum
ELECTIVEFree electives
CONCENTRATIONConcentration/track requirements
CAPSTONECapstone/culminating experience

Requirement Item Fields ​

FieldTypeRequiredMax LengthValidationNotes
BlockSelect (FK)Yes-Must existParent requirement block
Requirement TypeSelect (Lookup)Yes-REQUIREMENT_TYPEHow requirement is satisfied
CourseSelect (FK)Conditional-Must existSpecific course required
Course PatternTextConditional50Pattern syntaxPattern like "MATH 2*"
Activity TypeSelect (Lookup)Conditional-ACTIVITY_TYPEFor non-course requirements
Min CreditsDecimalNo5,2>= 0Credits needed from this item
Min CountIntegerNo->= 0Number of courses/activities needed
Minimum GradeSelect (FK)No-Must existStored on the item (requirement_items.min_grade_id) but not read by the degree audit or the prerequisite gate, which take the minimum from the item's group or block (below)
Is RequiredBooleanNo--Core vs. elective within block
Sort OrderIntegerYes--Display order

Requirement Type Values ​

CodeDescriptionRequires
SPECIFIC_COURSEA specific courseCourse field
COURSE_PATTERNCourses matching patternCourse Pattern field
COURSE_LISTChoose from listCourse List items
ACTIVITYNon-course activityActivity Type field
SUB_BLOCKNested block referenceParent Block

Minimum grades on blocks and groups ​

Requirement groups (requirement_groups) carry the same two columns, min_grade_id and allowed_grades. Colleague block types 30-33 are imported as groups, and that is where most course-requisite minimums sit (ACCT-122's "Take ACCT-121; Minimum Grade C-, S" is a group). Both tables are filled by migrate-requirements -steps grades (migration 286); before it the columns were empty and a D satisfied a C- requirement.

Inheritance. A rule applies to its block or group and everything beneath it, the nearest declaration winning; a group's own value overrides its block's. The two halves inherit independently -- a group can list S while its minimum comes from a block above.

How a course's grade is judged -- the same in the degree audit (audit/grade_rules.go) and in the registration prerequisite gate and failed-course cascade (registration/service_cascade.go), so the two never disagree:

The course hasCounts?
No grade yet (in progress)Counts as in progress
A letter on allowed_gradesYes, passing or not, as Colleague declared (S, IS, N, I, IP, even F)
A non-passing gradeNo
Transfer or non-credit workYes: its minimum was applied when its equivalency was evaluated
No minimum in effectYes
Grade points at or above the minimumYes. Compared by numeric_equivalent, so a rule holds across the undergraduate and graduate scales
A passing grade with no points (P, S)Only if allowed

Course Pattern Syntax ​

PatternMatches
MATH 1*Any MATH course 100-199
BIOL 2*Any BIOL course 200-299
* 101Any 101-level course
CHEM *LAny CHEM lab course

Computed Fields (Read-Only) ​

FieldDescription
Items CountNumber of items in this block
Child Blocks CountNumber of nested blocks

Validation Rules ​

  1. If Min Credits is set, block must have course items or child blocks
  2. Max Credits must be >= Min Credits if both are set
  3. Requirement items must have exactly one of: Course, Course Pattern, or Activity Type
  4. Blocks cannot reference themselves (no circular nesting)
  5. A block or group Minimum Grade is inherited by everything beneath it unless overridden
  • Majors - Parent major program
  • Minors - Parent minor program
  • Courses - Courses that satisfy requirements

Student Information System Documentation