Overview
The predictor outputs a min-max score band against the maximum possible marks for that exam. It blends two signals:
- Test performance (60% weight) — your average percentage across the last 20 graded test attempts.
- Subject mastery (40% weight) — average topic mastery scores from your Learning Profile.
How the score is computed
avgPct = mean of (totalScore / maxScore × 100) across last 20 attempts avgMastery = mean of every topic score in your masteryMap blendedPct = avgPct × 0.6 + avgMastery × 0.4 predictedMid = round(blendedPct / 100 × maxPossible) band = round(maxPossible × 0.08) score range = [predictedMid − band, predictedMid + band]
The ±8% band tightens implicitly as you collect more attempts (theconfidence field rises from 0.50 toward 0.90).
Requirements
- At least one completed diagnostic test (your mastery map must exist).
- At least one graded test attempt — DPP, batch test, or mock test all count.
If either is missing, the predictor returns an explanatory message instead of a prediction.
Per-exam max scores
| Exam | Max marks |
|---|---|
| JEE Main | 300 |
| JEE Advanced | 360 |
| NEET | 720 |
| UPSC (CSE prelims paper-1) | 200, but predictor uses 2025 for full GS+CSAT band |
| CAT | 300 |
| CUET | 800 |
Unknown exam types default to a 300-mark scale. The mapping lives in the predictor as EXAM_MAX_SCORES — add a new entry when you add a new exam type.
Weak areas & lift
Alongside the score band, the predictor surfaces up to 5 weak-area topics: topics in your mastery map below 60. For each, it shows the additional marks you'd plausibly gain by bringing that topic to mastery — currently a flat 3% of max marks per topic.
Click any weak topic to jump to relevant flashcards or batches that cover it.
Refresh & caching
Predictions are cached for 24 hours per (user, exam) pair. The dashboard shows the generated timestamp. Click Refresh to force a fresh prediction — useful right after a new mock attempt.