Adjust test scores using standard academic curving methods
Square Root Curve (Most Popular)
Flat Point Addition
Adjust to Top Student
Original Percentage0%
Curved Percentage0%
Final Grade Estimate: F
How Does an Exam Curve Work?
An exam curve is a method used by educators to adjust student scores, typically when an assessment was more difficult than anticipated. Instead of relying solely on the raw percentage, curving allows the grade distribution to reflect student performance relative to the material or the rest of the class.
Common Curving Methods Explained
The Square Root Curve: This is the most common academic curve. It takes the square root of your raw percentage and multiplies it by 10. For example, a 64% becomes an 80%. This method helps lower scores significantly more than higher scores.
Flat Point Addition: The instructor adds the same number of points to everyone's raw score. If the highest grade was a 95%, the teacher might add 5 points to every student's score.
Top Student Adjustment: The highest score in the class is treated as the new 100%. All other scores are then calculated as a percentage of that top score.
Example Calculations
Raw Score
Method
New Grade
50 / 100
Square Root
70.7% (C-)
75 / 100
+10 Points
85% (B)
function toggleCurveInputs() {
var method = document.getElementById('curveMethod').value;
document.getElementById('flatPointDiv').style.display = (method === 'flat') ? 'block' : 'none';
document.getElementById('topScoreDiv').style.display = (method === 'top') ? 'block' : 'none';
}
function calculateExamCurve() {
var score = parseFloat(document.getElementById('originalScore').value);
var total = parseFloat(document.getElementById('totalPoints').value);
var method = document.getElementById('curveMethod').value;
if (isNaN(score) || isNaN(total) || total <= 0) {
alert('Please enter valid scores and total points.');
return;
}
var rawPercentage = (score / total) * 100;
var curvedPercentage = 0;
var summaryText = "";
if (method === 'sqrt') {
curvedPercentage = Math.sqrt(rawPercentage) * 10;
summaryText = "Applied a Square Root Curve (√% * 10).";
} else if (method === 'flat') {
var bonus = parseFloat(document.getElementById('flatPoints').value) || 0;
curvedPercentage = ((score + bonus) / total) * 100;
summaryText = "Added " + bonus + " raw points to the score.";
} else if (method === 'top') {
var top = parseFloat(document.getElementById('highestScore').value);
if (isNaN(top) || top 100 && method !== 'flat') curvedPercentage = 100;
var letter = "";
if (curvedPercentage >= 90) letter = "A";
else if (curvedPercentage >= 80) letter = "B";
else if (curvedPercentage >= 70) letter = "C";
else if (curvedPercentage >= 60) letter = "D";
else letter = "F";
document.getElementById('oldPercentage').innerText = rawPercentage.toFixed(1) + "%";
document.getElementById('newPercentage').innerText = curvedPercentage.toFixed(1) + "%";
document.getElementById('letterGrade').innerText = letter;
document.getElementById('curveSummary').innerText = summaryText;
document.getElementById('resultArea').style.display = 'block';
}