diff --git a/src/endWeek/healthFunctions.js b/src/endWeek/healthFunctions.js
index 43e7517eef0ca420f2393310e4db0c8e189a6a47..108b8b39dfb6c57e3b0861fd5a1fa2e82d232952 100644
--- a/src/endWeek/healthFunctions.js
+++ b/src/endWeek/healthFunctions.js
@@ -268,8 +268,24 @@ window.tired = function tired(slave) { // Run at the end of the week to take car
         assignment += normalRandInt(5);
     }
 
+    // Living Conditions
+	// PM - What they return to after a day of work. Do this after the assignment to allow kinder facility decorations.
+    if (slave.livingRules === "spare") {
+        livingRules -= 1; // Barely reduce tiredness while sleeping in spare conditions
+        if (V.dormitory < V.dormitoryPopulation) {
+            livingRules += 5; // Overcrowding penalty
+        }
+    } else if (slave.livingRules === "luxurious") {
+        livingRules -= normalRandInt(10); // Reduces tired by an average of 10 points while sleeping under luxurious conditions
+        if (V.dormitory < V.dormitoryPopulation) {
+            livingRules += 5; // Overcrowding penalty
+        }
+    } else {
+		livingRules -= normalRandInt(5); // Reduces tired by an average of 5 points while sleeping under normal conditions
+	}
+
     // Rewards
-    if (V.spaSpots > 0 && slave.assignment !== "rest in the spa" && (slave.rules.reward === "relaxation" || slave.rules.reward === "situational")) {
+    if (V.spaSpots > 0 && slave.assignment !== "rest in the spa" && slave.rules.reward === "relaxation" || slave.rules.reward === "situational") {
         if (slave.rules.reward === "relaxation") { // Considering the strength of the reward
             reward = -2;
         } else {
@@ -282,15 +298,17 @@ window.tired = function tired(slave) { // Run at the end of the week to take car
         } else if (slave.devotion < -20 || slave.trust >= -20) {
             reward = 0;
         }
-        V.spaSpots += reward; // Reducing the available space in the spa depending on how often the slave can be found there
-        reward = Math.max(normalRandInt(reward), 0) * (V.spaUpgrade + 1);
+        V.spaSpots -= reward; // Reducing the available space in the spa depending on how often the slave can be found there
+        if (reward > 0) {
+            reward = -(Math.max(normalRandInt(reward), 0) * (V.spaUpgrade + 1));
+        }
     }
 
     // Muscles
     if (slave.muscles < 50) {
         muscles = -Math.trunc((slave.muscles / 10) * (1 + normalRandInt(0, 5) / 100)); // Being weak increases tiredness, building muscles eventually reduces tiredness
     } else {
-        muscles = -Math.trunc(5 * (1 + normalRandInt(0, 5) / 100)); // Muscle benefits max out at 50
+        muscles = -Math.trunc(5 * (1 + normalRandInt(0, 5) / 100)); // Muscle benefits max out at 0
     }
 
     // Health
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index 2cefbf96e462a0c4d4d1283fbc7470ae55b434f4..9eb1c7ffcf20698327e28b4f15fda6a0c2f5d435 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -4,6 +4,14 @@
 
 <h1> $arcologies[0].name Weekly Slave Report - Week $week</h1>
 
+/*Spa room*/
+<<if $spa > 0>>
+	<<set $spaSpots = ($spa - $SpaiIDs.length) * 20>>
+	<<if $Attendant != 0>>
+		<<set $spaSpots = Math.trunc($spaSpots * (1 + ($Attendant.skill.attendant / 400)))>> /*A skilled attendant improves available space by 25%*/
+	<</if>>
+<</if>>
+
 /** silent pass for any reassignments before generating reports as well as getting tired and illness calculations out of the way */
 <<for $i = 0; $i < _SL; $i++>>
 	<<run tired($slaves[$i], illness($slaves[$i]))>>
@@ -899,14 +907,6 @@ $sexDemandResult.topClass = Math.trunc((($NPCSexSupply.topClass + $slaveJobValue
 
 <</for>>
 
-/*Spa room*/
-<<if $spa > 0>>
-	<<set $spaSpots = ($spa - $SpaiIDs.length) * 20>>
-	<<if $Attendant != 0>>
-		<<set $spaSpots = Math.trunc($spaSpots * (1 + ($Attendant.skill.attendant / 400)))>> /*A skilled attendant improves available space by 25%*/
-	<</if>>
-<</if>>
-
 <<if $averageDick > 0>><<set $averageDick = $averageDick/$slavesWithWorkingDicks>><</if>>
 <<set $freeSexualEnergy = $PC.sexualEnergy-$fuckSlaves>>
 <<if $freeSexualEnergy > 0>>
diff --git a/src/uncategorized/spa.tw b/src/uncategorized/spa.tw
index 1721b3dbb1ce48632f5c88fc14a1bf845707ac83..014dc265aead54f78ca6bee2a8c813128d57c750 100644
--- a/src/uncategorized/spa.tw
+++ b/src/uncategorized/spa.tw
@@ -67,7 +67,14 @@ $spaNameCaps
 	is well-appointed, with massage tables, hot tubs, and a cold pool.
 <</switch>>
 
-<<if $SpaiIDs.length > 3>>
+<<set _spaUtilization = 1 - ($spaSpots / $spa * 20)>>
+<<if _spaUtilization >= 1>>
+	It's crowded in here. Slaves are relaxing in the warm water, splashing around or just floating. Here and there some of the more sex-starved are in the early stages of intercourse, but most prefer to take time off from it all. Unfortunately there is not enough space for all of your slaves to enjoy the spa.
+<<elseif _spaUtilization >= 0.5>>
+	It's busy in here. Slaves are relaxing in the warm water, splashing around or just floating. Here and there some of the more sex-starved are in the early stages of intercourse, but most prefer to take time off from it all.
+<<elseif _spaUtilization > 0>>
+	It's sparsely populated; though the few slaves here have little company they like having the water to themselves.
+<<elseif $SpaiIDs.length / $spa > 0.5>>
 	It's busy in here. Slaves are relaxing in the warm water, splashing around or just floating. Here and there some of the more sex-starved are in the early stages of intercourse, but most prefer to take time off from it all.
 <<elseif $SpaiIDs.length > 0>>
 	It's sparsely populated; though the few slaves here have little company they like having the water to themselves.
@@ -75,7 +82,10 @@ $spaNameCaps
 	<<setLocalPronouns $Attendant>>
 	$Attendant.slaveName is alone here, and has nothing to do but keep the place (and $his own soft, wet body) spotlessly clean.
 <<else>>
-	It's empty and quiet. [[Decommission the Spa|Main][$spa = 0, $spaDecoration = "standard", $spaUpgrade = 0, $spaFix = 0]]
+	It's empty and quiet.
+<</if>>
+<<if $SpaiIDs.length == 0 && $Attendant == 0>>
+	[[Decommission the Spa|Main][$spa = 0, $spaDecoration = "standard", $spaUpgrade = 0, $spaFix = 0]]
 <</if>>
 
 <<if $SpaiIDs.length > 0>>