Decision support, not a verdict. Risk flags indicate that a student may benefit from timely support and should be reviewed by an educator or advisor. All data shown is synthetic.
Predictions use weeks 1–5 only. Week 2 is the earliest supported.
What this page is for
“Should I reach out to this student, and what would I say?”
Everything below is based only on weeks 1–5. Read it top to bottom: the score, then why the model gave it, then how sure it is, then what you could do.
Risk score
35%
Out of 100 students who behaved like this one, about 35 did not finish.
In plain English
Out of 100 students who behaved like this one, roughly this many did not finish the course.
How it's worked out
The model reads the student's weeks so far and produces a number, which is then corrected (“calibrated”) so the percentage means what it says.
What it tells you
A description of a pattern, not a judgement about a person. A high score means this student's behaviour resembles students who struggled.
Why it's here at all
It gives a teacher a place to start when they have 500 students and time to contact ten.
Confidence
89%
The model was run 30 times and the answers mostly agreed, so this score is stable.
In plain English
How much the model agrees with itself.
How it's worked out
The model is run 30 times with small random changes switched on. If all 30 runs land close together, confidence is high; if they scatter, it's low.
What it tells you
High confidence means the score is stable. Low confidence means the model is genuinely unsure about this particular student.
Why it's here at all
A score with no confidence attached invites more trust than it deserves.
What counts as good
Higher is steadier — but low confidence is honesty, not failure.
Uncertainty
±0.056
Those repeated runs mostly landed within 6 percentage points of each other — moderate spread.
In plain English
The plus-or-minus on the risk score, like the margin of error on a poll.
How it's worked out
How spread out those 30 runs were.
What it tells you
±0.05 means the 30 runs mostly landed within 5 percentage points of each other.
Why it's here at all
It's what turns 'the model is unsure' into something you can act on.
What counts as good
Smaller is steadier.
Needs human review
Recommended
The system is asking a person to look, because risk score sits close to the decision threshold.
In plain English
The system saying: don't act on me alone for this student.
How it's worked out
Triggered when the 30 runs disagree too much, or when the score sits right on the borderline where a nudge either way would flip the decision.
What it tells you
A prompt to look at the student's situation yourself, not a conclusion.
Why it's here at all
A system that never admits doubt gets trusted in exactly the cases where it shouldn't be.
Advisor review recommended
The same assessment, written out as a teacher would say it.
At week 5, this student shows some early warning signs (risk score 35%). This is an opportunity for a light-touch check-in. The model draws on the whole history so far fairly evenly rather than singling out any particular week. The signals contributing most are that discussion replies is below the cohort average (0.3 vs 1.5 over weeks 3-5); change in time on platform is below the cohort average (-16 vs -0.7 over weeks 3-5); late submissions so far is above the cohort average (1.0 vs 0.8 over weeks 3-5). On the positive side, irregularity of study times is below the cohort average. Model confidence is 89% and uncertainty is moderate (risk score sits close to the decision threshold), so advisor review is recommended before acting on this score.
How to read this: Each dot is a separate prediction, made using only the weeks up to that point. The shaded band is how much the model wavered — a wide band means unsure, not worse.
Weeks 2–8. The vertical line marks the week you have selected.
In plain English
Out of 100 students who behaved like this one, roughly this many did not finish the course.
How it's worked out
The model reads the student's weeks so far and produces a number, which is then corrected (“calibrated”) so the percentage means what it says.
What it tells you
A description of a pattern, not a judgement about a person. A high score means this student's behaviour resembles students who struggled.
Why it's here at all
It gives a teacher a place to start when they have 500 students and time to contact ten.
How to read this: taller bars are weeks that counted for more in this particular judgement. This comes straight out of the model — it is the model reporting on itself, not a guess about it.
HATF learns its own time windows rather than being given a fixed one. These are the weights it chose for this student — a volatile learner gets read through a short window, a slow drifter through a long one.
Week-to-week swings
Short-term shifts
Slow, sustained trends
How to read this: for each signal we replace it with the cohort average, re-run the model, and see how far the score moves. Bars to the right pushed the risk up; bars to the left pulled it down. This shows what the model is sensitive to — it is not a claim that the behaviour caused anything.
| Signal | This student | Cohort | Effect |
|---|---|---|---|
Discussion replies Interaction |
Supportive actions an advisor could take this week.
GET /students/STU_00307/explanation?week=5{
"student_id": "STU_00307",
"week": 5,
"risk_probability": 0.3472,
"risk_level": "medium",
"confidence_score": 0.8873,
"uncertainty_std": 0.0563,
"uncertainty_level": "moderate",
"requires_human_review": true,
"review_reason": "risk score sits close to the decision threshold",
"decision_threshold": 0.26,
"top_attention_weeks": [
{
"week": 5,
"attention_weight": 0.2105
},
{
"week": 4,
"attention_weight": 0.2
},
{
"week": 1,
"attention_weight": 0.1978
}
],
"attention_is_concentrated": false,
"attention_spread": 0.015,
"attention_weights": [
{
"week": 1,
"weight": 0.1978
},
{
"week": 2,
"weight": 0.1961
},
{
"week": 3,
"weight": 0.1956
},
{
"week": 4,
"weight": 0.2
},
{
"week": 5,
"weight": 0.2105
}
],
"temporal_window_usage": [
{
"scale_weeks": 1,
"label": "1-week window",
"usage": 0.4237
},
{
"scale_weeks": 3,
"label": "3-week window",
"usage": 0.2505
},
{
"scale_weeks": 7,
"label": "7-week window",
"usage": 0.3258
}
],
"top_behavioral_indicators": [
{
"feature": "forum_replies",
"label": "Discussion replies",
"group": "interaction",
"unit": "per week",
"impact_on_risk": 0.0916,
"direction": "increases risk",
"observed_value": 0.33,
"cohort_average": 1.49,
"observed_display": "0.3",
"cohort_display": "1.5",
"comparison": "below the cohort average",
"window": "weeks 3-5",
"higher_is_better": true,
"concerning_side": true
},
{
"feature": "session_minutes_delta",
"label": "Change in time on platform",
"group": "activity",
"unit": "minutes/week",
"impact_on_risk": 0.0723,
"direction": "increases risk",
"observed_value": -15.53,
"cohort_average": -0.75,
"observed_display": "-16",
"cohort_display": "-0.7",
"comparison": "below the cohort average",
"window": "weeks 3-5",
"higher_is_better": true,
"concerning_side": true
},
{
"feature": "cum_late_submissions",
"label": "Late submissions so far",
"group": "assessment",
"unit": "cumulative",
"impact_on_risk": 0.0665,
"direction": "increases risk",
"observed_value": 1,
"cohort_average": 0.78,
"observed_display": "1.0",
"cohort_display": "0.8",
"comparison": "above the cohort average",
"window": "weeks 3-5",
"higher_is_better": false,
"concerning_side": true
},
{
"feature": "late_submissions",
"label": "Late submissions",
"group": "assessment",
"unit": "per week",
"impact_on_risk": 0.0551,
"direction": "increases risk",
"observed_value": 0.33,
"cohort_average": 0.2,
"observed_display": "0.3",
"cohort_display": "0.2",
"comparison": "above the cohort average",
"window": "weeks 3-5",
"higher_is_better": false,
"concerning_side": true
}
],
"protective_indicators": [
{
"feature": "time_of_day_entropy",
"label": "Irregularity of study times",
"group": "temporal",
"unit": "0-1 score",
"impact_on_risk": -0.1369,
"direction": "reduces risk",
"observed_value": 0.46,
"cohort_average": 0.47,
"observed_display": "0.46",
"cohort_display": "0.47",
"comparison": "below the cohort average",
"window": "weeks 3-5",
"higher_is_better": false,
"concerning_side": false
},
{
"feature": "quiz_score_observed",
"label": "Weeks with a graded quiz",
"group": "assessment",
"unit": "0/1 flag",
"impact_on_risk": -0.0466,
"direction": "reduces risk",
"observed_value": 0.67,
"cohort_average": 0.59,
"observed_display": "0.67",
"cohort_display": "0.59",
"comparison": "above the cohort average",
"window": "weeks 3-5",
"higher_is_better": true,
"concerning_side": false
}
],
"natural_language_explanation": "At week 5, this student shows some early warning signs (risk score 35%). This is an opportunity for a light-touch check-in. The model draws on the whole history so far fairly evenly rather than singling out any particular week. The signals contributing most are that discussion replies is below the cohort average (0.3 vs 1.5 over weeks 3-5); change in time on platform is below the cohort average (-16 vs -0.7 over weeks 3-5); late submissions so far is above the cohort average (1.0 vs 0.8 over weeks 3-5). On the positive side, irregularity of study times is below the cohort average. Model confidence is 89% and uncertainty is moderate (risk score sits close to the decision threshold), so advisor review is recommended before acting on this score.",
"recommended_actions": [
"Review upcoming assessment deadlines with the student and agree a realistic plan.",
"Offer academic support: office hours, tutoring, or a worked review of recent work.",
"Invite the student into a study group or a discussion thread they can contribute to.",
"Connect the student with a peer mentor.",
"Treat this flag as a prompt to look, not a conclusion - the model is not confident here."
],
"method_note": "Important weeks come from the model's attention weights. Indicator impact is measured by occlusion: each signal is replaced with the cohort average and the change in risk is recorded. This shows what the model is sensitive to - it is not a causal claim.",
"responsible_ai_note": "This is a decision-support signal, not a judgement about the student. It highlights a possible opportunity for timely support and should be reviewed by an educator or advisor alongside context the LMS cannot see."
}Attention is effectively uniform here (spread 0.015 across 5 weeks). The model is drawing on the whole history evenly rather than singling out a week, so no week is highlighted — calling one “most important” would be reading noise. This is a known property of the synthetic cohort; see Limitations.
In plain English
How much the model leaned on each individual week when judging this student.
How it's worked out
Read directly out of the model's attention layer — this is the model reporting on itself, not a guess about it.
What it tells you
A tall bar on week 4 means the model's opinion rests heavily on what happened in week 4.
Why it's here at all
It points a teacher at when things changed, not just that they did.
| 0.3 |
| 1.5 |
| +9.2% |
Change in time on platform Activity | -16 | -0.7 | +7.2% |
Late submissions so far Assessment | 1.0 | 0.8 | +6.7% |
Late submissions Assessment | 0.3 | 0.2 | +5.5% |
Irregularity of study times Timing | 0.46 | 0.47 | -13.7% |
Weeks with a graded quiz Assessment | 0.67 | 0.59 | -4.7% |
Values averaged over weeks 3-5.
Before you act
How this was computed