All Semesters · Cumulative Average · GPA Recovery
Cumulative GPA Calculator
Track your overall GPA across every semester. Add all your terms with credit hours to get your true credit-weighted cumulative GPA. Fully usable on mobile.
All calculations run in your browser, your grades never leave your device
● Pro Version is Free for now
✓ Target Planner · Grade Replacement · Recovery ·
Trend Chart · Multi-Scale Compare · What-If
Trend Chart · Multi-Scale Compare · What-If
Day
Night
Cumulative GPA
—
Add semesters below to calculate
—
Total Credits
—
Semesters
—
Best Semester
—
Lowest Semester
How this is calculated
Cumulative GPA = Σ (Semester GPA × Credits) ÷ Σ Credits
⚙️ Settings
📅 Semesters
Semester Name
Credits
Sem GPA
Status
Export your cumulative GPA report
📋 Academic Standing Reference
Summa Cum Laude≥ 90%
Magna Cum Laude≥ 85%
Cum Laude≥ 80%
Dean's List (typical)3.5 to 3.8+
Honor Roll (typical)3.0 to 3.5+
🏆 Honor Roll & Standing PRO
🎯 Target GPA Planner PRO
GPA needed per future semester to reach your target.
GPA needed per semester
—
—
🔮 What-If Simulator PRO
Drag any semester to see the instant effect.
Simulated Cumulative GPA:
—
🔄 Grade Replacement PRO
See how retaking a course changes your cumulative GPA.
—
Current
—
After
—
Gain
🏋️ GPA Recovery PRO
How long to reach a target with perfect future grades.
—
Credits
—
Semesters
—
Max GPA
🌍 GPA in Other Systems PRO
📈 GPA Trend PRO
Add at least 2 semesters to see your GPA trend
📖 Quick Reference
1Credits matter a heavier semester weighs more on your cumulative GPA than a lighter one.
2Dilution effect the more credits you have completed, the less any single semester moves your overall GPA.
3Match your scales pick the GPA Scale that matches your Grading System for a meaningful result.
4Check your registrar policies on grade replacement and forgiveness vary widely by institution.
💡 GPA 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 ──────────────────────────────────────────────────────
recalc();
updateTips();
try{const m=localStorage.getItem('sst_cgpa_mode');if(m==='pro')setMode('pro');}catch(e){}