Enter your raw scores (number of correct answers) to estimate your scaled score.
Chemical and Physical Foundations:–
Critical Analysis and Reasoning (CARS):–
Biological and Biochemical Foundations:–
Psychological and Social Foundations:–
Estimated Total MCAT Score:–
Understanding the MCAT Scoring System
The Medical College Admission Test (MCAT) is a standardized, multiple-choice examination designed to help law school admission committees assess your problem-solving, critical thinking, and knowledge of natural, behavioral, and social science concepts and principles prerequisite to the study of medicine.
How Scaled Scores are Calculated
The MCAT consists of four sections. For each section, the number of correct answers (your "raw score") is converted into a scaled score ranging from 118 (lowest) to 132 (highest). These four scaled scores are then summed to create your total score, which ranges from 472 to 528.
The Four MCAT Sections
CPBS: Chemical and Physical Foundations of Biological Systems (59 questions)
CARS: Critical Analysis and Reasoning Skills (53 questions)
BBLS: Biological and Biochemical Foundations of Living Systems (59 questions)
PSBB: Psychological, Social, and Biological Foundations of Behavior (59 questions)
Example Calculation
If you achieve the following raw scores on a practice exam:
Chem/Phys: 45/59 → Approx. 128
CARS: 42/53 → Approx. 128
Bio/Biochem: 48/59 → Approx. 129
Psych/Soc: 52/59 → Approx. 130
Total Score: 515
Please note that this calculator uses a standard distribution model. Actual AAMC scaling varies slightly per test administration to account for differences in question difficulty.
function calculateMCATScore() {
var cpbsRaw = parseInt(document.getElementById("cpbsRaw").value);
var carsRaw = parseInt(document.getElementById("carsRaw").value);
var bblsRaw = parseInt(document.getElementById("bblsRaw").value);
var psbbRaw = parseInt(document.getElementById("psbbRaw").value);
if (isNaN(cpbsRaw) || isNaN(carsRaw) || isNaN(bblsRaw) || isNaN(psbbRaw)) {
alert("Please enter valid raw scores for all sections.");
return;
}
if (cpbsRaw > 59 || bblsRaw > 59 || psbbRaw > 59 || carsRaw > 53) {
alert("Input exceeds the maximum number of questions per section.");
return;
}
function scaleStandard(raw, max) {
var percentage = raw / max;
var scaled;
if (percentage >= 0.95) scaled = 132;
else if (percentage >= 0.90) scaled = 131;
else if (percentage >= 0.85) scaled = 130;
else if (percentage >= 0.80) scaled = 129;
else if (percentage >= 0.74) scaled = 128;
else if (percentage >= 0.68) scaled = 127;
else if (percentage >= 0.62) scaled = 126;
else if (percentage >= 0.55) scaled = 125;
else if (percentage >= 0.48) scaled = 124;
else if (percentage >= 0.41) scaled = 123;
else if (percentage >= 0.34) scaled = 122;
else if (percentage >= 0.27) scaled = 121;
else if (percentage >= 0.20) scaled = 120;
else if (percentage >= 0.10) scaled = 119;
else scaled = 118;
return scaled;
}
function scaleCars(raw, max) {
var percentage = raw / max;
var scaled;
if (percentage >= 0.92) scaled = 132;
else if (percentage >= 0.87) scaled = 131;
else if (percentage >= 0.81) scaled = 130;
else if (percentage >= 0.75) scaled = 129;
else if (percentage >= 0.69) scaled = 128;
else if (percentage >= 0.64) scaled = 127;
else if (percentage >= 0.58) scaled = 126;
else if (percentage >= 0.52) scaled = 125;
else if (percentage >= 0.46) scaled = 124;
else if (percentage >= 0.40) scaled = 123;
else if (percentage >= 0.34) scaled = 122;
else if (percentage >= 0.28) scaled = 121;
else if (percentage >= 0.22) scaled = 120;
else if (percentage >= 0.12) scaled = 119;
else scaled = 118;
return scaled;
}
var sCPBS = scaleStandard(cpbsRaw, 59);
var sCARS = scaleCars(carsRaw, 53);
var sBBLS = scaleStandard(bblsRaw, 59);
var sPSBB = scaleStandard(psbbRaw, 59);
var total = sCPBS + sCARS + sBBLS + sPSBB;
document.getElementById("resCPBS").innerText = sCPBS;
document.getElementById("resCARS").innerText = sCARS;
document.getElementById("resBBLS").innerText = sBBLS;
document.getElementById("resPSBB").innerText = sPSBB;
document.getElementById("resTotal").innerText = total;
document.getElementById("mcatResult").style.display = "block";
}