diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js
index dd2fc6c1e5fd7b9f3ed7353762ae25130a569ff1..4c49806a64009004523a70f1ec6a6721eb6a9051 100644
--- a/src/endWeek/saTakeClasses.js
+++ b/src/endWeek/saTakeClasses.js
@@ -142,46 +142,46 @@ window.saTakeClasses = (function saServeThePublic() {
 	 */
 	function learningProgress(slave) {
 		if (V.schoolroomRemodelBimbo !== 1 || slave.assignment !== "learn in the schoolroom") {
-			if (slave.intelligence > 95) {
+			if (slave.intelligence > 95) { /* 200% education for brilliant */
 				learning += 2;
-			} else if (slave.intelligence > 50) {
+			} else if (slave.intelligence > 50) { /* normal for very smart */
 				learning++;
-			} else if (slave.intelligence > 15) {
+			} else if (slave.intelligence > 15) { /* 70% for smart */
 				if (jsRandom(1, 100) < 70) {
 					learning++;
 				}
-			} else if (slave.intelligence >= -15) {
+			} else if (slave.intelligence >= -15) { /* 50% for average */
 				if (jsRandom(1, 100) < 50) {
 					learning++;
 				}
-			} else {
+			} else { /* slow, very slow, and retards */
 				let slaveDensity = (50 + slave.intelligence);
-				if (V.schoolroomUpgradeRemedial === 1 && jsRandom(1, 100) < 50) {
+				if (V.schoolroomUpgradeRemedial === 1 && jsRandom(1, 100) < 50) { /* 50% chance to benefit from upgrade */
 					slaveDensity = 55;
 				}
-				if (jsRandom(1, 100) > slaveDensity) {
+				if (jsRandom(1, 100) < slaveDensity) { /* 55% with upgrade, [-50 to 34]% without, mapped from [-100 to -16] intelligence */
 					learning++;
 				}
 			}
 		} else {
-			if (slave.intelligence < -95) {
+			if (slave.intelligence < -95) { /* 200% de-education for retards */
 				learning += 2;
-			} else if (slave.intelligence < -50) {
+			} else if (slave.intelligence < -50) { /* normal for very slow */
 				learning++;
-			} else if (slave.intelligence < -15) {
+			} else if (slave.intelligence < -15) { /* 70% for slow */
 				if (jsRandom(1, 100) < 70) {
 					learning++;
 				}
-			} else if (slave.intelligence > 15) {
+			} else if (slave.intelligence <= 15) { /* 50% for average */
 				if (jsRandom(1, 100) < 50) {
 					learning++;
 				}
-			} else {
-				let slaveDensity = (-10 + slave.intelligence);
-				if (V.schoolroomUpgradeRemedial === 1 && jsRandom(1, 100) < 50) {
+			} else { /* smart, very smart, and brilliant */
+				let slaveDensity = (50 - slave.intelligence);
+				if (V.schoolroomUpgradeRemedial === 1 && jsRandom(1, 100) < 50) { /* 50% chance to benefit from upgrade */
 					slaveDensity = 55;
 				}
-				if (jsRandom(1, 100) < slaveDensity) {
+				if (jsRandom(1, 100) < slaveDensity) { /* 55% with upgrade, [-50 to 34]% without, mapped from [16 to 100] intelligence */
 					learning++;
 				}
 			}