Methodology.
This page exists so principals, parents, and cadets can see the maths behind every number ExamPulse shows them. None of these formulas are secret. They are deliberately simple so a human can argue with them.
Readiness · 0–100
A weighted blend of four sub-metrics, each normalised to 0–100. The blend is intentionally heavier on academic accuracy and adherence than on attendance, because readiness is about preparedness for an exam, not behaviour at school.
readiness = 0.40 · accuracy_norm
+ 0.30 · adherence_norm
+ 0.20 · trajectory_norm
+ 0.10 · attendance_norm
Component definitions
| Component | Source | Normalisation to 0–100 |
|---|---|---|
accuracy_norm |
Average of last 8 drill attempts | Already a percentage; passed through unchanged |
adherence_norm |
Drills attempted in the last 7 days | min(100, drills_7d × 14) — ~7 drills/week saturates at 100 |
trajectory_norm |
Slope of the last 8 drill scores | clamp(50 + slope × 5, 0, 100) — flat = 50; +10 pts/test = 100; −10 pts/test = 0 |
attendance_norm |
Present-ish % over the last 30 days | Already a percentage; passed through unchanged |
Why these weights?
A cadet who is consistently scoring well but absent two days a week is more ready for an exam than a cadet who is in class every day but failing every drill. The weights reflect that. They are not the right weights for every academy — principals are encouraged to tune them and watch how the rankings move.
Trajectory is bounded so a single fluky test doesn't whipsaw the score. The slope is computed over 8 attempts, not 3, for the same reason.
Attention classification
Readiness 0–100 is a continuous score, but the dashboards also colour-code each cadet so the principal can sort by who needs the eye today. The bands:
| Band | Readiness | Colour |
|---|---|---|
| Critical | < 50 | Red |
| Attention | 50–64 | Amber |
| Steady | 65–79 | Green |
| Standout | 80+ | Green |
The 3-of-3 criteria gate (legacy)
Earlier versions of this product used a separate criteria-gate model: a cadet was flagged High-risk only when 3 of 3 thresholds fired (attendance < 80%, recent score < class avg by 5+, and a declining trajectory). Both views still co-exist on the snapshot — the criteria gate is a stricter trigger that catches a clear pattern, while the readiness band is an early-warning that flags drift before all three criteria fire.
Drill streak
A streak counts consecutive days on which the cadet completed at least one drill. Sundays and academy-declared holidays do not break a streak. A missed weekday breaks the streak; the counter resets to zero.
The streak counter is reconciled at 02:30 IST against the previous day's completed drills. The cadet's drill that begins at 11pm on a Tuesday counts toward Tuesday's streak, not Wednesday's.
A cadet can snooze today's drill (counts as missed for streak purposes), pick another (replaces today's recommendation, doesn't count as a miss), or skip with a free-text reason (counts as missed). Skip reasons are visible to the commander and entered into the case timeline.
Drill recommender
When the cadet opens "Today's drill", the recommender picks one in five steps:
- Read the cadet's latest snapshot (subject performance, recent attempts, weak topics).
- Pick the subject with the worst gap of
(student_avg − class_avg). Ties broken by lowest absolute student average. - Within that subject, pick the weakest topic from the snapshot's
weakTopicsarray. If empty, pick the test name from the most recent below-60% attempt in that subject. - Query the question bank for that subject + topic, excluding any question IDs the cadet attempted in the last 7 days.
- Compose 30 questions with a 60% Hard / 30% Medium / 10% Easy mix — deliberately bias-Hard because we are targeting a weak area.
The recommendation is idempotent for 6 hours: reloads of the cadet's drill page within that window return the same drill, so the cadet doesn't see a churning recommendation if they're hesitating.
Commander-assigned drills always take precedence over the recommender. If the principal or teacher has issued a drill, the recommender's pick is suppressed until the assigned drill is completed or skipped.
What we do not do
- We do not invent data. If a cadet has attempted no drills, no readiness score is shown.
- We do not blame any single number. The dashboards always show the underlying components alongside the headline figure.
- We do not send any cadet's name, phone, or email to a third-party AI service. The AI insight panel uses pseudonymous IDs only; see the DPO contact page for the data-handling policy.
- We do not surface the case timeline to parents or to the cadet themselves. It is an internal institutional record.
Suggesting a change
If you are a principal and you think a threshold should move, edit it in Settings → Risk criteria. The change is logged and applies on the next nightly snapshot. If you are a parent and you think a number is wrong, write to the Data Protection Officer.