Skip to main content

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.

The Recommendation Engine is the core of CORS. It scores every course in your catalog using an ensemble machine learning model trained on your historical enrollment data, then marks each course as Recommended or De-prioritized for the upcoming semester. This guide walks you through a complete analysis from start to finish.
If you need to understand what the output fields mean — offer score, latent demand, bottleneck score — see Understand and Interpret Recommendation Results.

Prerequisites

Before running an analysis, make sure you have:
  • Uploaded your course catalog (JSON) from the Data Management page
  • Uploaded your historical offerings data (CSV or XLSX) covering at least one full semester
Without historical offerings data, the Recommendation Engine cannot train its models. The system falls back to enrollment influx numbers for latent demand estimates, but prediction quality will be significantly lower.

Steps

1

Open the Recommendation Engine

Navigate to Recommendation Engine in the sidebar, or click the Run Analysis action in the Dashboard banner at the top of the home page.
2

Review the analysis target term

CORS automatically detects your Analysis Target term — for example, Fall 2025 — based on the most recent semester present in your historical offerings data. Confirm this matches the semester you are planning for before continuing.
The analysis target is read-only and inferred from your data. If the term shown is incorrect, check that your historical offerings file includes the expected semester entries.
3

Select your campus

Choose either Beirut or Byblos from the campus selector. CORS maintains a separate ML model calibrated for each campus, so your results will reflect enrollment patterns specific to the campus you select.
To generate recommendations for both campuses, run the analysis twice — once per campus. See the FAQ for details.
4

Enter expected new enrollment numbers

Provide the number of new students expected to enroll in the upcoming semester. These values feed into the latent demand calculation.
Student typeDefaultDescription
New Freshmen50First-year undergraduate students
New Sophomores100Second-year undergraduate students
New Masters10Graduate students entering the program
Adjust these defaults to match your registrar’s projections. Higher enrollment numbers increase latent demand estimates across introductory courses.
5

Configure capacity quotas (optional)

Enable Strict Capacity Quotas if you want to constrain the number of recommended courses per department and type. When this mode is active, the system selects exactly the top N courses by offer score per slot, rather than using the ML threshold.The default slot limits are:
Department / typeDefault slots
CSC Core12
CSC Elective3
BIF Core6
BIF Elective2
MTH8
STA3
You can edit each limit directly in the quota configuration panel. Leave this toggle off to use standard ML threshold-based recommendations.
Strict Capacity Quotas is useful when your department has firm staffing or room constraints and cannot accommodate an open-ended list of recommended courses.
6

Execute the analysis

Click Execute Analysis. CORS runs predictions for every course in the catalog — this typically takes a few seconds. A progress indicator is shown while the engine is working.
If your ML models have not been trained on recent data, click Recalibrate Intelligence before executing. This retrains the ensemble models on all current historical offerings and should be done whenever you upload new data.
7

Review the results table

Once the analysis completes, the results table lists every course with its recommendation status:
  • Recommended — the model is confident this course should be offered. Plan to include it in the semester schedule.
  • De-prioritized — the model scored this course below the offering threshold. Consider skipping it unless you have programmatic reasons to offer it.
Each row also shows the offer score, latent demand level, bottleneck score, and projected number of sections.
8

Filter to priority courses

Use the filter controls above the results table to narrow your view. A useful starting point:
  • Set Status to Offer
  • Set Demand to High
This surfaces the courses the model is most confident about and that have the largest student population ready to enroll — your highest-priority scheduling targets.
9

Inspect AI reasoning (optional)

Click Why? on any course row to open the reasoning panel. It shows:
  • Latent demand — the estimated number of students ready to take the course
  • Bottleneck score — how many downstream courses are blocked if this course is not offered
  • Model confidence — the raw ensemble probability (0.0–1.0)
Use this panel to understand why a course was recommended or de-prioritized, and to decide whether to override the model’s suggestion.
Cross-reference high bottleneck scores with the Prerequisite Graph to visualize the full dependency chain affected by a course decision.

Next steps

Once you have your list of recommended courses, proceed to the Timetable Scheduler to assign time slots, rooms, and faculty.

Build and export a timetable

Schedule your recommended courses into a full semester timetable and export to Excel.

Interpret recommendation results

Learn what offer score, latent demand, and bottleneck score mean in detail.