What score do I need? · Best & Worst Case · Grade Scenarios
Final Exam Grade Calculator
Find out exactly what score you need on your final exam to reach your target grade, or see what final grade you'll get based on your expected exam score. Fully usable on mobile.
All calculations happen in your browser, your grades never leave your device
● Pro Version is Free for now
✓ Grade Boundary Explorer · Scenario Comparison ·
Study Plan · Component Builder
Study Plan · Component Builder
Day
Night
Score needed on final exam
—
out of 100%
How this is calculated
Final Grade = Current × (1 − Final Weight) + Exam Score × Final Weight
%
Your overall grade not including the final exam%
Percent of total course grade%
The grade you want to finish the course with%
%
%
%
What you realistically expect to score%
Enter each graded component, assignments, quizzes, midterm and so on, to auto calculate your current grade, then set your final exam details. PRO
Component
Score %
Weight %
Weight used: 0%
Remaining for final: 100%
%
%
%
—
Worst Case
if you score 0%
—
Current Grade
before the final
—
Best Case
if you score 100%
📋 Grade Scenarios, If You Score...
| Exam Score | Final Grade | Letter / Grade | Status |
|---|
Export your grade analysis
📖 Grading Scale Reference
🎯 Grade Boundary Explorer PRO
Exact exam score needed for each grade boundary.
🔮 Score Scenario Comparison PRO
Compare realistic, optimistic and pessimistic outcomes.
📚 Personalised Study Plan PRO
🧮 How the Formula Works PRO
📖 Quick Reference
1Worst and best case shows your grade range if you score 0% or 100% on the final.
2Final exam weight matters a lot, a 40% final moves your grade more than a 10% one.
3Not achievable means even a perfect 100% on the final cannot reach your target.
4Already safe means your current grade guarantees your target no matter what you score.
💡 Final Exam Tips PRO
${t}
`).join('');
}// ── UTILS ─────────────────────────────────────────────────────
function escHtml(s){return String(s||'').replace(/&/g,'&').replace(//g,'>');}
function escAttr(s){return String(s||'').replace(/"/g,'"').replace(/'/g,''');}
function toast(msg){const t=document.getElementById('toast');t.textContent=msg;t.classList.add('show');setTimeout(()=>t.classList.remove('show'),2800);}// ── INIT ──────────────────────────────────────────────────────
renderComponents();
calculate();
try{const m=localStorage.getItem('sst_fegc_mode');if(m==='pro')setMode('pro');}catch(e){}