Every time you add, remove, or move a course, Courseplan recomputes which of your academic requirements are fulfilled. The requirements sidebar on the left side of the screen reflects the current state of your plan without requiring any manual refresh. This page explains the sidebar layout, how fulfillment status is determined, and the tools available for overriding the automatic assignment.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/cornell-dti/course-plan/llms.txt
Use this file to discover all available pages before exploring further.
Requirements sidebar layout
The sidebar groups requirements into four categories, displayed top to bottom:| Group | What it covers |
|---|---|
| College | Distribution requirements and total academic credit minimums for your enrolled college (AG, AS, HE, IL, BU, etc.) |
| Major | Core courses, electives, and specialization requirements for each declared major |
| Minor | Requirements for each declared minor |
| Grad | Requirements for graduate programs, treated at the same level as major/minor |
- Ongoing requirements — requirements where
safeMinCountFulfilled < minCountRequired - Completed requirements — requirements fully satisfied by courses in your plan
Fulfillment status
Courseplan uses two parallel fulfillment graphs — a safe graph and a dangerous graph — to distinguish courses that satisfy requirements without conflict from those that are involved in a constraint violation:- Safe fulfillment (
safeMinCountFulfilled) counts only courses that are not double-counted across requirements that prohibit sharing. - Dangerous fulfillment (
dangerousMinCountFulfilled) counts all courses, including those involved in conflicts.
safeMinCountFulfilled / minCountRequired), capped at 100%.
Self-check requirements
Some requirements cannot be verified programmatically (for example, “complete a senior thesis”). These are markedfulfilledBy: 'self-check' and display as manual checkboxes. They never count toward the automatic fulfilled total.
Toggleable requirements
Certain requirements offer mutually exclusive sub-tracks (for example, two different sets of distribution requirements). A dropdown appears inside the expanded requirement letting you switch between options. Your choice is stored intoggleableRequirementChoices and immediately recalculates fulfillment.
Opt-in and opt-out overrides
Courseplan’s automatic checker assigns each course to the requirement it best satisfies. You can override this assignment at any time. To opt a course out of a requirement: When you add a Cornell course, the requirement-assignment step shows which requirements the course automatically fulfills. If you leave the requirement selection blank, or explicitly select a different requirement, the system records anoptOut list for that course’s FirestoreCourseOptInOptOutChoices. The course is then excluded from the opted-out requirement’s fulfillment count.
To opt a course into a requirement arbitrarily:
The arbitraryOptIn field on each course’s overridden choices allows you to attach a course to a requirement it would not normally satisfy — for example, assigning a CS course to a history distribution slot. This is recorded per requirement and per slot.
Drag-and-drop from the requirements bar:
When you drag a suggested course from a requirement’s course list directly into a semester column, Courseplan automatically computes the full opt-out list: it finds all other requirements the course could potentially satisfy and opts the course out of all of them except the one it was dragged from.
The opt-out list is computed at the time you add the course. If you later add more requirements or change your major, you may need to revisit assignments for courses that satisfy multiple requirements.
Requirement conflicts
When the Requirement Conflicts feature flag is enabled, Courseplan detects situations where a single course is being counted toward two requirements that prohibit double-counting. Affected course cards are highlighted with an amber border and a shadow (conflict CSS class). A conflict modal appears when you add a course that triggers a violation, giving you the option to resolve the conflict by opting the course out of one of the competing requirements, or to remove the course.
The set of courses currently in constraint violations is tracked as courseToRequirementsInConstraintViolations — a map from course unique ID to the set of conflicting requirement ID pairs.
Common questions
Why does a course I added not show up as fulfilling any requirement?
Why does a course I added not show up as fulfilling any requirement?
The course may not match any checker rule for your declared major, college, or minor, or it may have been opted out of all requirements during the add flow. Open the course menu and check its requirement assignment. You can use the arbitrary opt-in feature to attach it to a requirement manually.
Why is a completed requirement still showing as incomplete?
Why is a completed requirement still showing as incomplete?
Some requirements have additional sub-requirements (
additionalRequirements). A requirement is only moved to Completed when every nested sub-requirement is also satisfied. Expand the requirement in the sidebar to see which sub-requirement still needs courses.A course appears in two requirement slots — is that allowed?
A course appears in two requirement slots — is that allowed?
It depends on the requirements. Some colleges and majors permit a course to count toward multiple requirements simultaneously. When the Requirement Conflicts feature is enabled, Courseplan flags courses that are used in ways the rules prohibit. If no conflict is flagged, the double-count is allowed by the requirements data.
What are the progress bar numbers?
What are the progress bar numbers?
The numbers show how many units (courses or credits, depending on the requirement type) you have fulfilled out of the minimum required. For credit-based requirements like Total Academic Credits, the bar fills as you accumulate eligible credits. PE courses and 1000-level courses do not count toward the 120-credit minimum for most colleges.
What does 'See all courses' do?
What does 'See all courses' do?
Each requirement can surface a list of courses that satisfy it. Clicking See all opens a paginated view (24 courses per page) inside the sidebar. You can drag any of those courses directly into a semester.
How do I handle AP/IB/CASE exam credits?
How do I handle AP/IB/CASE exam credits?
Exam credits are entered during onboarding. Courseplan converts them to
CourseTaken entries using userDataToExamCourses and includes them in fulfillment calculations automatically. You can update your exam scores in your profile settings.