The Recommendation Engine is the core feature of CORS. It uses campus-specific machine learning models trained on historical enrollment and offering data to predict which courses should be offered in the upcoming semester, how many sections to open, and how urgent each offering is. You configure the run parameters, execute the analysis, and inspect the prioritized results table — all from a single page.Documentation Index
Fetch the complete documentation index at: https://cors-lau.vercel.app/docs/llms.txt
Use this file to discover all available pages before exploring further.
Configuration panel
Before running an analysis, fill in the parameters in the configuration card at the top of the page.Analysis target
The Analysis Target field is read-only and is automatically detected from the most recent course offering record in your database. For example, if your data ends at Spring 2025, the system sets the target to Fall 2025. You do not need to set this manually.If no offering records exist in the database, the system falls back to the current calendar year with a Fall semester.
Institutional campus
Use the Institutional Campus dropdown to select either Beirut or Byblos. Each campus has its own independently trained ML model, so switching campuses loads a different prediction model and retrieves the most recent run for that campus.New enrollment inputs
Enter the number of incoming students expected in the next semester. These counts help estimate latent demand for gateway and introductory courses.| Field | Description |
|---|---|
| New Freshman | Expected count of new first-year undergraduate students |
| New Sophomores | Expected count of incoming second-year students |
| New Masters | Expected count of new graduate students |
Strict capacity quotas
The Strict Capacity Quotas toggle constrains the recommendation output to a fixed number of course slots per department and course type. When disabled, the model’s own classification threshold determines which courses are recommended. When enabled, the top-scoring courses are selected up to the configured slot limits. When you enable the toggle, six slot quota fields appear:| Field | Default | Applies to |
|---|---|---|
| CSC Core | 12 | Computer Science core courses |
| CSC Elective | 3 | Computer Science elective courses |
| BIF Core | 6 | Business Information core courses |
| BIF Elective | 2 | Business Information elective courses |
| MTH | 8 | Mathematics courses |
| STA | 3 | Statistics courses |
Running the analysis
The configuration card contains two action buttons.Recalibrate Intelligence
Click Recalibrate Intelligence to retrain the ML models on the current state of your database. The button label changes to Calibrating Neural Weights… while training is in progress. A success banner confirms how many samples were used when training completes.Execute Analysis
Click Execute Analysis to run the bulk prediction. The system extracts feature vectors for every course in the catalog, scores each one through the campus-specific model, applies the section planner, and saves the run to the database. Results populate the table below.Set campus and enrollment inputs
Select the correct campus and enter realistic enrollment projections. These values directly influence demand estimates for entry-level courses.
Choose quota mode
Decide whether you want the model to recommend freely or constrain output to department slot limits. Toggle Strict Capacity Quotas and adjust slot values as needed.
Click Execute Analysis
Press Execute Analysis and wait for the results table to populate. The spinner in the button indicates the run is in progress.
Results table
After the analysis completes, the results table shows every course in the catalog with its prediction output. The table header reports the total number of course entities and the count of Priority Offerings.Columns
| Column | Description |
|---|---|
| Status | Recommended (green) or De-prioritized (grey) — the model’s binary offer/skip decision |
| Course Code | The course identifier in monospace format |
| Score Index | A circular progress indicator from 0–100 representing the model’s propensity score (probability of being offered × 100) |
| Projected Demand | A demand level badge: High, Medium, or Low |
| Optimal Sections | The recommended number of sections to open, calculated by the section planner |
| Intelligence | A Why? button that opens the AI reasoning popover |
Demand levels
Demand levels are derived from the course’s latent demand count (students who have completed all prerequisites and are ready to enroll):| Level | Latent demand threshold |
|---|---|
| High | Greater than 40 students |
| Medium | Greater than 15 students |
| Low | 15 students or fewer |
Why? popover
Clicking Why? on any row opens an AI reasoning panel with the following fields:- Latent Demand — the count of students ready to take the course
- Bottleneck Score — a measure of how many downstream courses depend on this course as a prerequisite
- Model Confidence — the model’s probability estimate expressed as a percentage
- Action — the number of sections the planner recommends opening (shown only when sections > 0)
- An additional note if the course is grouped as Elective Pool (cross-listed technical electives treated as a pool)
Filtering and sorting
Click the Parameters button in the results header to expand the filter bar.Filters
| Filter | Options |
|---|---|
| Department | All, CSC, BIF, MTH, STA |
| Academic Category | All, Core, Elective, Masters, Minor |
| Offer Status | All, Offer (Recommended only), Skip (De-prioritized only) |
| Demand Index | All, High, Medium, Low |
Sorting
Click Propensity to sort by Score Index, or Capacity to sort by number of sections. Each button cycles through descending → ascending → off. Only one sort can be active at a time. Click Reset to clear all active filters and restore the default sort order.Switching the campus dropdown reloads the most recent saved run for that campus automatically — you do not need to re-run the analysis to compare Beirut and Byblos results.