mlip_dropoff_prediction_synth.course_dashboard_30d) up to the course level. Read live
from BigQuery (short server-side cache); nothing is stored in the MIND database. All
endpoints require STUDENT_PERFORMANCE.can_view.
At-risk definition & bands. A student counts as at-risk for a course when the model
labels them High or Medium (
risk_level). A course’s at-risk rate is the share of
its enrolled students that are at risk. Course bands (configurable): Critical rate
≥ 0.30, Elevated 0.20–0.29, otherwise Low.Get Course Dashboard Stats
Query parameters
Filter by faculty.
Filter by programme.
Filter by programme level.
Filter by cohort.
Exclude courses with fewer than this many enrolled students (keeps tiny courses from skewing bands).
Response
students_affected_change is the week-over-week change in distinct at-risk students —
the latest model run vs the previous, derived from run_history (a fraction, -0.05 =
−5%; null if there’s only one run). Counts above are at min_enrolled=20; with these
synthetic scores no course reaches the 30% Critical band.
List At-Risk Courses
Query parameters
Filter by faculty.
Filter by programme.
Filter by programme level.
Filter by cohort.
critical, elevated, or low. Omit for all courses.Match on course code, course name, or programme.
Minimum enrolled students.
at_risk_rate, at_risk_count, enrolled, or course_code.asc or desc.Records to skip.
Max records (1–100). Use
limit=5 for the overview “Course drop-off prediction” widget.Response
Notes
at_risk_rate = at_risk_count / enrolled;bandis derived from it.high_countis the students labelledHigh;avg_drop_off_score/avg_score_trend_slopeare course averages.- Filters scope the underlying student rows, so e.g.
programme=BSc Nursingcounts only that programme’s students within each course. programme/facultyareANY_VALUEper course — a course is taken by students across programmes, so when noprogrammefilter is applied the displayed programme is one of them.- Without
min_enrolled, single-student courses (1 of 1 at risk = 100%) top the rate sort; setmin_enrolled(e.g. 20) for a meaningful ranking.
Get Filter Options
Export At-Risk Courses
min_enrolled
as the list endpoint.
csv or xlsx.at_risk_courses_{YYYY-MM-DD}.{csv|xlsx}. Hard cap 50,000 rows.