diff --git a/src/endWeek/reports/penthouseReport.js b/src/endWeek/reports/penthouseReport.js
index 807d1b84fa06bf872aefd98b8ea24ed2b1d4dc9c..da7f65c6ead09287d9363ab2e42138f7c6629d2e 100644
--- a/src/endWeek/reports/penthouseReport.js
+++ b/src/endWeek/reports/penthouseReport.js
@@ -144,19 +144,23 @@ App.EndWeek.penthouseReport = function() {
 		}
 
 		App.Events.addNode(el, r, "div");
-		r = [];
-		if (slave.minorInjury !== 0) {
-			r.push(`${His} ${slave.minorInjury} will heal by the end of the week.`);
-		}
 
 		if (V.showEWD !== 0) {
-			r.push(App.SlaveAssignment.standardSlaveReport(slave, false));
+			r = [];
+			if (slave.minorInjury !== 0) {
+				r.push(`${His} ${slave.minorInjury} will heal by the end of the week.`);
+			}
+			r.push(App.SlaveAssignment.choosesOwnClothes(slave));
+			r.push(...App.SlaveAssignment.individualSlaveReport(slave));
+			App.Events.addNode(el, r, "div", "indent");
 		} else {
 			// discard return values silently
-			App.SlaveAssignment.standardSlaveReport(slave, true);
+			App.SlaveAssignment.choosesOwnClothes(slave);
+			App.SlaveAssignment.individualSlaveReport(slave);
 		}
 
-		if (V.PC.health.shortDamage < 30 && Array.isArray(V.personalAttention) && V.personalAttention.findIndex(function(s) { return s.ID === slave.ID; }) !== -1) {
+		r = [];
+		if (V.PC.health.shortDamage < 30 && Array.isArray(V.personalAttention) && V.personalAttention.some(s => s.ID === slave.ID)) {
 			r.push(personalAttention(slave));
 		}
 
@@ -167,7 +171,7 @@ App.EndWeek.penthouseReport = function() {
 			}
 		}
 
-		r.push(App.SlaveAssignment.devotion(slave));
+		r.push(`<div class="indent">${App.SlaveAssignment.devotion(slave)}</span>`);
 		App.Events.addNode(el, r);
 		return el;
 	}
diff --git a/src/endWeek/saLiveWithHG.js b/src/endWeek/saLiveWithHG.js
index bd6c5eb51b69c7149e92987115ce40d674ab77f3..f8b898cb6e782e619f49c4765bc579a405d74d25 100644
--- a/src/endWeek/saLiveWithHG.js
+++ b/src/endWeek/saLiveWithHG.js
@@ -1625,23 +1625,13 @@ App.SlaveAssignment.liveWithHG = (function() {
 	function slaveReport(slave) {
 		if (V.showEWD === 0) {
 			/* App.SlaveAssignment.choosesOwnClothes(slave) */
-			App.SlaveAssignment.rules(slave);
-			App.SlaveAssignment.diet(slave);
-			App.SlaveAssignment.longTermEffects(slave);
-			App.SlaveAssignment.drugs(slave);
-			App.SlaveAssignment.relationships(slave);
-			App.SlaveAssignment.rivalries(slave);
+			App.SlaveAssignment.individualSlaveReport(slave);
 			App.SlaveAssignment.devotion(slave);
 		} else {
 			/* App.SlaveAssignment.choosesOwnClothes(slave) */
 			const content = App.UI.DOM.makeElement("div", '', "indent");
 			$(content).append(
-				App.SlaveAssignment.rules(slave),
-				App.SlaveAssignment.diet(slave),
-				App.SlaveAssignment.longTermEffects(slave),
-				App.SlaveAssignment.drugs(slave),
-				App.SlaveAssignment.relationships(slave),
-				App.SlaveAssignment.rivalries(slave),
+				...App.Events.spaceSentences(App.SlaveAssignment.individualSlaveReport(slave)),
 				`<div class="indent">${App.SlaveAssignment.devotion(slave)}</span>`);
 			r.push(content);
 		}
diff --git a/src/endWeek/standardSlaveReport.js b/src/endWeek/standardSlaveReport.js
index 5ed4a6d9b43f2f8129093671ce28c516ed8e1fe3..5a090d67d9bcfc082f053b1a64c7a8ab156eaa0c 100644
--- a/src/endWeek/standardSlaveReport.js
+++ b/src/endWeek/standardSlaveReport.js
@@ -1,5 +1,6 @@
 /**
  * Generates (and returns if not silent) a standard slave report
+ * This is the part after the slave's job in most facilities.
  * @param {App.Entity.SlaveState} slave
  * @param {boolean} silent
  * @returns {HTMLElement|null}
@@ -9,19 +10,31 @@ App.SlaveAssignment.standardSlaveReport = function(slave, silent=false) {
 
 	tired(slave);
 
-	const rules = App.SlaveAssignment.rules(slave);
-	const diet = App.SlaveAssignment.diet(slave);
-	const ltEffects = App.SlaveAssignment.longTermEffects(slave);
-	const drugs = App.SlaveAssignment.drugs(slave);
-	const relationships = App.SlaveAssignment.relationships(slave);
-	const rivalries = App.SlaveAssignment.rivalries(slave);
+	const individualReport = App.SlaveAssignment.individualSlaveReport(slave);
 	const devotion = App.SlaveAssignment.devotion(slave);
 
 	if (!silent) {
 		const content = App.UI.DOM.makeElement("div", '', "indent");
 
-		$(content).append(clothes, rules, diet, ltEffects, drugs, relationships, rivalries, `<div class="indent">${devotion}</div>`);
+		$(content).append(...App.Events.spaceSentences([clothes, ...individualReport]), `<div class="indent">${devotion}</div>`);
 
 		return content;
 	}
 };
+
+/**
+ * Generates the main part of the standard slave report for an individual slave.
+ * This is the section that's identical for all slaves regardless of facility.
+ * @param {App.Entity.SlaveState} slave
+ * @returns {Array<DocumentFragment|string>}
+ */
+App.SlaveAssignment.individualSlaveReport = function(slave) {
+	return [
+		App.SlaveAssignment.rules(slave),
+		App.SlaveAssignment.diet(slave),
+		App.SlaveAssignment.longTermEffects(slave),
+		App.SlaveAssignment.drugs(slave),
+		App.SlaveAssignment.relationships(slave),
+		App.SlaveAssignment.rivalries(slave),
+	];
+};