diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index 71f355dd232921065c51ff17c1dd585e872519a7..1ff71a07f7fc65e1bd222e0dac5eddb8f4bcbb1c 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -1161,29 +1161,23 @@ window.repX = function(rep, what, who) {
 	//round the change
 	rep = Math.trunc(rep);
 
-	//Apply the reputation change
-	V.rep += rep;
-
-	//Check if total rep is over cap, and use "overflow" category to expense it down if needed.
-	if (V.rep > 20000) {
-		V.lastWeeksRepExpenses.overflow += (20000 - V.rep); V.rep = 20000;
-	}
-
 	//INCOME
+	//These are all scaled relative to current rep except when recording the who, to keep comparisons between slaves possible across times. This quite drastically reduces rep income at high levels of rep and only slightly at low levels.
 	if(rep > 0) {
 
+		//record the slave, if available
+		if (typeof who !== 'undefined'){
+			who.lastWeeksRepIncome += rep;
+			who.lifetimeRepIncome += rep;
+		}
+
 		//record the action
 		if (typeof V.lastWeeksRepIncome[what] !== 'undefined') {
+			rep = Math.round(Math.pow(1000 * rep + Math.pow(V.rep, 2), 0.5) - V.rep)* (V.corpEasy + 1);
 			V.lastWeeksRepIncome[what] += rep;
 		} else {
 			V.lastWeeksRepErrors += `Unknown place "${what}" gained you ${rep}<br>`;
 		}
-
-		//record the slave, if available
-		if (typeof who !== 'undefined'){
-				who.lastWeeksRepIncome += rep;
-				who.lifetimeRepIncome += rep;
-		}
 	}
 
 	//EXPENSES
@@ -1202,6 +1196,14 @@ window.repX = function(rep, what, who) {
 			who.lifetimeRepExpenses += rep;
 		}
 	}
+
+	//Apply the reputation change
+	V.rep += rep;
+
+	//Check if total rep is over cap, and use "overflow" category to expense it down if needed.
+	if (V.rep > 20000) {
+		V.lastWeeksRepExpenses.overflow += (20000 - V.rep); V.rep = 20000;
+	}
 	return rep;
 };
 
diff --git a/src/js/summaryWidgets.js b/src/js/summaryWidgets.js
index 43a3266e7383864198c7397073172289f76a6931..6af4e66e07cbcc23cf89082681eef67d73aa3be7 100644
--- a/src/js/summaryWidgets.js
+++ b/src/js/summaryWidgets.js
@@ -8,7 +8,7 @@ window.SlaveStatClamp = /** @param {App.Entity.SlaveState} slave */ function Sla
 		else if ((slave.trust < 100) && (slave.trust > 20))
 			slave.trust += (Math.trunc((slave.devotion-100)*5)/10);
 		else
-			repX(10*(slave.devotion-100), "slavesViewOfPC", slave);
+			repX(4*(slave.devotion-100), "slavesViewOfPC", slave);
 		slave.devotion = 100;
 	} else if (slave.devotion < -95)
 		slave.devotion = -100;
@@ -18,7 +18,7 @@ window.SlaveStatClamp = /** @param {App.Entity.SlaveState} slave */ function Sla
 		else if (slave.devotion < 100 && slave.devotion > 20)
 			slave.devotion += Math.trunc(slave.trust-100);
 		else
-			repX(10*(slave.trust-100), "slavesViewOfPC", slave);
+			repX(4*(slave.trust-100), "slavesViewOfPC", slave);
 		slave.trust = 100;
 	} else if (slave.trust < -95)
 		slave.trust = -100;
diff --git a/src/uncategorized/reputation.tw b/src/uncategorized/reputation.tw
index dcf562dbe47b61461532b37ba21aa543a1838f12..609f582864cdb1074fceded446d6391f1d5c4323 100644
--- a/src/uncategorized/reputation.tw
+++ b/src/uncategorized/reputation.tw
@@ -46,7 +46,7 @@ On formal occasions, you are announced as $PCTitle.
 <</if>>
 <</if>>
 
-<<set $repDecay = 0.2>>
+<<set $repDecay = 0.05>>
 <<if $arcologies[0].FSChattelReligionistLaw == 1>>
 	<<set _repLoss = 0, $PC.degeneracy = 0>>
 	Since you are the Prophet, your reputation no longer degrades at all.
@@ -57,13 +57,13 @@ On formal occasions, you are announced as $PCTitle.
 	<<if $arcologies[0].FSMaturityPreferentialistLaw == 1>>
 	<<if $PC.actualAge >= 65>>
 		Since you're getting on in years and have an impressive list of accomplishments, and $arcologies[0].name's society respects age, your reputation degrades quite slowly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.05))>>
+		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
 	<<elseif $PC.actualAge >= 50>>
 		Since you're well into middle age and have an impressive list of accomplishments, and $arcologies[0].name's society respects age, your reputation degrades quite slowly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.05))>>
+		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
 	<<elseif $PC.actualAge < 35>>
 		Since you're unusually young for an arcology owner, and $arcologies[0].name's society respects age, your reputation degrades quite quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.05))>>
+		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
 	<<else>>
 		Since you're only entering middle age, and $arcologies[0].name's society respects age, your reputation degrades fairly quickly.
 		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay))>>
@@ -71,27 +71,27 @@ On formal occasions, you are announced as $PCTitle.
 	<<elseif $arcologies[0].FSYouthPreferentialistLaw == 1>>
 	<<if $PC.actualAge >= 65>>
 		Since you're getting on in years and have an impressive list of accomplishments, but $arcologies[0].name's society is coming to prefer youth to experience, so your reputation degrades fairly quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.05))>>
+		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
 	<<elseif $PC.actualAge >= 50>>
 		You're well into middle age and have an impressive list of accomplishments, but $arcologies[0].name's society is coming to prefer youth to experience, so your reputation degrades fairly quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.05))>>
+		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
 	<<elseif $PC.actualAge < 35>>
 		You're unusually young for an arcology owner, but $arcologies[0].name's society doesn't mind.
 		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay))>>
 	<<else>>
 		Since you're entering middle age, and $arcologies[0].name's society respects youth, your reputation degrades fairly quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.05))>>
+		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
 	<</if>>
 	<<else>>
 	<<if $PC.actualAge >= 65>>
 		Since you're getting on in years and have an impressive list of accomplishments, and $arcologies[0].name's society respects age, your reputation degrades quite slowly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.05))>>
+		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
 	<<elseif $PC.actualAge >= 50>>
 		Since you're well into middle age and have an impressive list of accomplishments, your reputation degrades fairly slowly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.05))>>
+		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
 	<<elseif $PC.actualAge < 35>>
 		Since you're unusually young for an arcology owner, your reputation degrades fairly quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.05))>>
+		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
 	<<else>>
 		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay))>>
 	<</if>>
@@ -103,7 +103,10 @@ On formal occasions, you are announced as $PCTitle.
 	<<elseif $enduringRep > 2000>>
 	However, you have been a figure of regard for long enough that some of your reputation has become permanent.
 	<</if>>
-	<<set $enduringRep += Math.trunc(_repLoss*0.025)>>
+	<<if _repLoss > 500>>
+		<<set _repLoss = 500>>
+	<</if>>
+	<<set $enduringRep += Math.trunc(_repLoss*0.1)>>
 <<else>>
 	<<set _repLoss = 0>>
 	<<if $enduringRep > 8000>>
@@ -150,7 +153,7 @@ On formal occasions, you are announced as $PCTitle.
 		<</if>>
 	<<else>>
 		Most prominent slaveowners are male, and your obviously feminine appearance makes it @@.red;harder for you to maintain your reputation.@@
-		<<run repX(forceNeg($rep*0.1), "PCappearance")>>
+		<<run repX(forceNeg(Math.min(($rep*0.05), 500)), "PCappearance")>>
 		<<if $arcologies[0].FSGenderFundamentalist > 10>>
 			Society @@.red;strongly resents@@ your being an arcology owner; this damages the idea that women should not be in positions of responsibility.
 			<<= FSChange("GenderFundamentalist", -5)>>
@@ -173,7 +176,7 @@ On formal occasions, you are announced as $PCTitle.
 		<</if>>
 	<<else>>
 		Most prominent slaveowners are very masculine, and your feminine appearance makes it @@.red;harder for you to maintain your reputation.@@
-		<<run repX(forceNeg($rep*0.05), "PCappearance")>>
+		<<run repX(forceNeg(Math.min(($rep*0.025), 250)), "PCappearance")>>
 		<<if $arcologies[0].FSGenderFundamentalist > 30>>
 			Society @@.red;strongly resents@@ your being an arcology owner; this damages the idea that feminine people should not be in positions of responsibility.
 			<<= FSChange("GenderFundamentalist", -5)>>
@@ -196,7 +199,7 @@ On formal occasions, you are announced as $PCTitle.
 		<</if>>
 	<<else>>
 		Most prominent slaveowners are very masculine, and though your unorthodox arrangement downstairs isn't obvious when you're clothed, the rumors are unavoidable and it's @@.red;harder for you to maintain your reputation.@@
-		<<run repX(forceNeg($rep*0.05), "PCappearance")>>
+		<<run repX(forceNeg(Math.min(($rep*0.025), 250)), "PCappearance")>>
 		<<if $arcologies[0].FSGenderFundamentalist > 30>>
 			Society @@.red;strongly resents@@ your being an arcology owner; this damages the idea that people who are not men should not be in positions of responsibility.
 			<<= FSChange("GenderFundamentalist", -5)>>
@@ -391,22 +394,22 @@ On formal occasions, you are announced as $PCTitle.
 
 <<if $PC.career == "escort" && $rep < 16000>>
 	Society @@.red;frowns@@ over being run by an ex-whore. The presence of porn of you on the net doesn't aid your reputation either.
-	<<run repX(forceNeg($rep*0.1), "PCactions")>>
+	<<run repX(forceNeg(Math.min(($rep*0.05), 500)), "PCactions")>>
 <<elseif $PC.career == "escort">>
 	Your reputation is so strong that society has accepted your previous endeavors despite how unusual it is for a prominent slaveowner to have once nearly been a slave.
 <</if>>
 <<if $PC.career == "servant" && $rep < 12000>>
 	Society @@.red;frowns@@ over being run by an ex-<<if $PC.title == 1>>butler<<else>>maid<</if>>, despite how prominent their previous owner was.
-	<<run repX(forceNeg($rep*0.1), "PCactions")>>
+	<<run repX(forceNeg(Math.min(($rep*0.05), 500)), "PCactions")>>
 <<elseif $PC.career == "servant">>
 	Your reputation is so strong that society has accepted your previous vocation despite how unusual it is for a prominent slaveowner to have once been nothing more than a lowly servant.
 <</if>>
 <<if $PC.career == "gang" && $rep < 15000>>
 	Society @@.red;frowns@@ over being run by an ex-gang leader, no matter how strong they might have been.
-	<<run repX(forceNeg($rep*0.1), "PCactions")>>
+	<<run repX(forceNeg(Math.min(($rep*0.05), 500)), "PCactions")>>
 <<elseif $PC.career == "BlackHat" && $rep < 15000>>
 	Society @@.red;dislikes@@ being run by someone so capable of dredging up secrets, especially when they used to do it for the highest bidder.
-	<<run repX(forceNeg($rep*0.1), "PCactions")>>
+	<<run repX(forceNeg(Math.min(($rep*0.05), 500)), "PCactions")>>
 <<elseif $PC.career == "gang" || $PC.career == "BlackHat">>
 	Your reputation is strong enough that society has come to accept your background as part of your image.
 <</if>>
diff --git a/src/uncategorized/saServeThePublic.tw b/src/uncategorized/saServeThePublic.tw
index cf48b56d4c56f8c3da9e67549c4b59514c965ab1..95a3b696af0148fc10ba7b16ab38d91f23927c6a 100644
--- a/src/uncategorized/saServeThePublic.tw
+++ b/src/uncategorized/saServeThePublic.tw
@@ -1053,13 +1053,13 @@ $His appearance attracted $beauty members of the public (<<print Math.trunc($bea
 
 <<if ($slaves[$i].assignment == "recruit girls")>>
 <<elseif $slaves[$i].assignment == "serve in the club">>
-	<<run repX(Math.trunc(($beauty*$FResult)*(1+(0.003*$slaves[$i].entertainSkill))*0.1), "publicServantClub", $slaves[$i])>>
+	<<run repX(Math.trunc(($beauty*$FResult)*(1+(0.003*$slaves[$i].entertainSkill))*0.15), "publicServantClub", $slaves[$i])>>
 <<elseif $slaves[$i].assignment == "serve the public">>
-	<<run repX(Math.trunc(($beauty*$FResult)*(1+(0.003*$slaves[$i].entertainSkill))*0.1), "publicServant", $slaves[$i])>>
+	<<run repX(Math.trunc(($beauty*$FResult)*(1+(0.003*$slaves[$i].entertainSkill))*0.15), "publicServant", $slaves[$i])>>
 <<else>>
-	<<run repX(Math.trunc(($beauty*$FResult)*(1+(0.003*$slaves[$i].entertainSkill))*0.1), "serving the public in an unregistered building", $slaves[$i])>>
+	<<run repX(Math.trunc(($beauty*$FResult)*(1+(0.003*$slaves[$i].entertainSkill))*0.15), "serving the public in an unregistered building", $slaves[$i])>>
 <</if>>
-<<set _incomeStats.income += Math.trunc(($beauty*$FResult)*(1+(0.003*$slaves[$i].entertainSkill))*0.1)>>
+<<set _incomeStats.income += Math.trunc(($beauty*$FResult)*(1+(0.003*$slaves[$i].entertainSkill))*0.15)>>
 
 /* FACILITY DECORATION IMPACTS */