mlip_dropoff_prediction_synth.student_dashboard_30d) — this data is not stored
in the MIND database; each request queries BigQuery directly (with a short server-side
cache). All endpoints require STUDENT_PERFORMANCE.can_view permission.
How risk bands are derived. The model emits
risk_level of High / Medium / Low
plus a drop_off_score. The dashboard adds a Critical band as the top slice of High
(drop_off_score ≥ critical cutoff, default 0.50). Because the synthetic drop_off_score
tops out around 0.55, the table’s threshold column (0.7) is not used for flagging — the
calibrated cutoffs are: flagged ≥ 0.15, high ≥ 0.40, critical ≥ 0.50 (all configurable).Get Aggregate Dashboard Stats
Query parameters
Filter by faculty.
Filter by programme.
Filter by programme level (e.g.
100L, 300L).Filter by cohort (e.g.
202402_S1).Model-run timestamp to report on. Defaults to the latest run. When a non-latest run is
requested, card counts are derived from
drop_off_score (basis scores) rather than the
model labels (basis labels).Accepted for API symmetry. The band cards always show the full breakdown, so this does
not change the aggregate counts (it scopes the at-risk list).
Example request
Response
Field reference
| Field | Description |
|---|---|
total_flagged / critical / high / medium | { count, pct_change }. pct_change is a fraction (-0.2886 = −28.86%) vs the previous run, derived from run_history scores. null when there is no prior run. |
cards_basis | labels (counts from the model’s risk_level on the latest snapshot) or scores (score-derived, for a historical period). |
current_period / previous_period | Model-run timestamps used for the comparison. |
thresholds | The calibrated cutoffs in effect, plus the informational model threshold. |
Get Filter Options
Response
Get Student Risk Profile & Trend
drop_off_score), risk trajectory, behavioural / academic / payment signals, per-course
risk, and the full 24-run score trend.
Path parameters
The student’s ID (BigQuery
student_id).Example request
Response
Notes
confidenceis the model’sdrop_off_score(probability of drop-off).trajectoryis derived fromscore_trend_slope:worsening(rising risk),improving, orstable.trendcontains only real runs — the warehouse padsrun_historyto a fixed length with empty entries, which are dropped.404 NOT_FOUNDif the student is not in the drop-off dataset.
Get Prediction History
Path parameters
The student’s ID.
Response
Field reference
| Field | Description |
|---|---|
runs[].risk_band | Score-derived band for that run (critical/high/medium/low). |
runs[].delta_vs_previous | Change in drop_off_score from the prior run; null for the first run. |
trajectory | Overall direction from score_trend_slope. |