diff --git a/src/js/economyJS.tw b/src/js/economyJS.tw
index aeffab83ff3093c01019da209872528e28f1f849..fd813506d0b0858a086e573037492cac22f5e0d8 100644
--- a/src/js/economyJS.tw
+++ b/src/js/economyJS.tw
@@ -939,13 +939,32 @@ window.initFacilityStatistics = function(facility) {
 	return facility;
 };
 
-/* Example  
-<<run cashX(1000, "whore", $activeSlave)>>
+/* 
 
-Make sure that expenses arrive in COST as a negative, they are often positive in code.  Use forceNeg and pass along on a temporary variable if needed.
+Welcome to the new way to spend and make money, all while having it recorded: cashX!  In the past, costs were directly deducted from $cash, with something like <<set $cash -= 100>>.
 
-*/
+The new system will still happily spend your money, but it will also record it in the appropriate budget category and (optinally) the appropriate slave as well.
+
+Let's say you were going to spend 100 on your favorite $activeSlave with cashX.  You might try:
+  
+<<run cashX(-100, "slaveMod", $activeSlave)>>
+
+There we go!
+1. -100 taken from your account
+2. Recorded: -100 for the slaveMod category, to be displayed on the Budget screen
+3. Recorded: -100 noted in your activeSlave's permanent record.  She better get busy paying that off!
+
+cashX can be used in JS as well, and can be included in [[]] style links.
+
+Make sure that expenses arrive in the COST slot as a negative, they are often positive in code.  Use the new function forceNeg or pass it along on a temporary variable if needed.
 
+Costs don't have to be numbers either, you can use variables.  <<run cashX(forceNeg($contractCost), "slaveTransfer", $activeSlave)>>.  forceNeg makes sure that whatever value $contractCost has is negative, and will therefore be recorded as an expense.  You don't have to use it if you're sure the number you are passing along is negative.
+
+A full list of categories (slaveMod, slaveTransfer, event) are in the widget "setupLastWeeksCash", currently found in costsWidgets.tw.  It's important to match your cost to one of those categories (or add a new one there, and display it in costsBudget.tw.)
+
+The third category, the "slave slot" is completely optional.  Sometimes you just want to spend money by yourself.
+
+*/
 window.cashX = function(cost, what, who) {
 	const V = State.variables;
 
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 61f47b7cd681a57025bfc03df587101a7291cb09..6042f2af1f4a4ec91c8d3fff6e090f25cf0a7551 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -4810,7 +4810,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 					<<set $activeSlave.trust -= 30, $activeSlave.devotion -= 25, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.vagina = 1>>
 					<<= VaginalVCheck()>>
 					<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-					<<set $cash -= ($surgeryCost*2)>>
+					<<run cashX(forceNeg($surgeryCost*2), "slaveSurgery", $activeSlave)>>
 					<</replace>>
 				<</link>> //Will cost <<print cashFormat(($surgeryCost*2))>>//
 			<<else>>
@@ -4819,7 +4819,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 					You ask $him if $he enjoyed the last time $he used $his dick and if it was worth crossing you, because it will not happen again. Restrained as $he is, the most $he can do is cry and beg. Once $he comes to after the surgery, $he faces $his new body; @@.mediumorchid;$he's now a surgical null@@ and $he's @@.gold;the only one to blame@@ for $his @@.red;suffering.@@ Every other rebellious slave is @@.gold;horrified by the example.@@
 					<<set $activeSlave.trust -= 30, $activeSlave.devotion -= 25, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.foreskin = 0, $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.dickAccessory = "none">>
 					<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-					<<set $cash -= ($surgeryCost*2)>>
+					<<run cashX(forceNeg($surgeryCost*2), "slaveSurgery", $activeSlave)>>
 					<</replace>>
 				<</link>> //Will cost <<print cashFormat(($surgeryCost*2))>>//
 			<</if>>
@@ -4829,7 +4829,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 				<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0>>
 				<<= AnalVCheck()>>
 				<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-				<<set $cash -= ($surgeryCost*4)>>
+				<<run cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave)>>
 				<</replace>>
 			<</link>> //Will cost <<print cashFormat(($surgeryCost*4))>>//
 		<</if>>
@@ -4910,7 +4910,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 					<<set $activeSlave.trust -= 30, $activeSlave.devotion -= 25, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.vagina = 1>>
 					<<= VaginalVCheck()>>
 					<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-					<<set $cash -= ($surgeryCost*2)>>
+					<<run cashX(forceNeg($surgeryCost*2), "slaveSurgery", $activeSlave)>>
 					<</replace>>
 				<</link>> //Will cost <<print cashFormat(($surgeryCost*2))>>//
 			<<else>>
@@ -4919,7 +4919,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 					You ask $him if $he enjoyed the last time $he used $his dick and if it was worth crossing you, because it will not happen again. Restrained as $he is, the most $he can do is cry and beg. Once $he comes to after the surgery, $he faces $his new body; @@.mediumorchid;$he's now a surgical null@@ and $he's @@.gold;the only one to blame@@ for $his @@.red;suffering.@@ Every other rebellious slave is @@.gold;horrified by the example.@@
 					<<set $activeSlave.trust -= 30, $activeSlave.devotion -= 25, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.foreskin = 0, $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.dickAccessory = "none">>
 					<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-					<<set $cash -= ($surgeryCost*2)>>
+					<<run cashX(forceNeg($surgeryCost*2), "slaveSurgery", $activeSlave)>>
 					<</replace>>
 				<</link>> //Will cost <<print cashFormat(($surgeryCost*2))>>//
 			<</if>>
@@ -4929,7 +4929,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 				<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0>>
 				<<= AnalVCheck()>>
 				<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-				<<set $cash -= ($surgeryCost*4)>>
+				<<run cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave)>>
 				<</replace>>
 			<</link>> //Will cost <<print cashFormat(($surgeryCost*4))>>//
 		<</if>>
@@ -5005,7 +5005,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 					<<set $activeSlave.trust -= 30, $activeSlave.devotion -= 25, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.vagina = 1>>
 					<<= VaginalVCheck()>>
 					<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-					<<set $cash -= ($surgeryCost*2)>>
+					<<run cashX(forceNeg($surgeryCost*2), "slaveSurgery", $activeSlave)>>
 					<</replace>>
 				<</link>> //Will cost <<print cashFormat(($surgeryCost*2))>>//
 			<<else>>
@@ -5014,7 +5014,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 					You ask $him if $he enjoyed the last time $he used $his dick and if it was worth crossing you, because it will not happen again. Restrained as $he is, the most $he can do is cry and beg. Once $he comes to after the surgery, $he faces $his new body; @@.mediumorchid;$he's now a surgical null@@ and $he's @@.gold;the only one to blame@@ for $his @@.red;suffering.@@ Every other rebellious slave is @@.gold;horrified by the example.@@
 					<<set $activeSlave.trust -= 30, $activeSlave.devotion -= 25, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.foreskin = 0, $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.dickAccessory = "none">>
 					<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-					<<set $cash -= ($surgeryCost*2)>>
+					<<run cashX(forceNeg($surgeryCost*2), "slaveSurgery", $activeSlave)>>
 					<</replace>>
 				<</link>> //Will cost <<print cashFormat(($surgeryCost*2))>>//
 			<</if>>
@@ -5024,7 +5024,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 				<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0>>
 				<<= AnalVCheck()>>
 				<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-				<<set $cash -= ($surgeryCost*4)>>
+				<<run cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave)>>
 				<</replace>>
 			<</link>> //Will cost <<print cashFormat(($surgeryCost*4))>>//
 		<</if>>
@@ -5075,7 +5075,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 				<<set $activeSlave.trust -= 30, $activeSlave.devotion -= 25, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.vagina = 1>>
 				<<= VaginalVCheck()>>
 				<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-				<<set $cash -= ($surgeryCost*2)>>
+				<<run cashX(forceNeg($surgeryCost*2), "slaveSurgery", $activeSlave)>>
 				<</replace>>
 			<</link>> //Will cost <<print cashFormat(($surgeryCost*2))>>//
 		<<else>>
@@ -5084,7 +5084,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 				You ask $him if $he enjoyed the last time $he used $his dick and if it was worth crossing you, because it will not happen again. Restrained as $he is, the most $he can do is cry and beg. Once $he comes to after the surgery, $he faces $his new body; @@.mediumorchid;$he's now a surgical null@@ and $he's @@.gold;the only one to blame@@ for $his @@.red;suffering.@@ Every other rebellious slave is @@.gold;horrified by the example.@@
 				<<set $activeSlave.trust -= 30, $activeSlave.devotion -= 25, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.foreskin = 0, $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.dickAccessory = "none">>
 				<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-				<<set $cash -= ($surgeryCost*2)>>
+				<<run cashX(forceNeg($surgeryCost*2), "slaveSurgery", $activeSlave)>>
 				<</replace>>
 			<</link>> //Will cost <<print cashFormat(($surgeryCost*2))>>//
 		<</if>>
@@ -5094,7 +5094,7 @@ brought in to you. This time <<EventNameLink $activeSlave>> has been sent to del
 			<<set $activeSlave.trust -= 50, $activeSlave.devotion -= 30, $activeSlave.health -= 20, $activeSlave.dick = 0, $activeSlave.prostate = 0, $activeSlave.dickAccessory = "none", $activeSlave.vagina = 0, $activeSlave.ovaries = 0, $activeSlave.clit = 0, $activeSlave.labia = 0>>
 			<<= AnalVCheck()>>
 			<<set $slaves.forEach(function(s) { if (s.devotion < -50) { s.trust -= 15; } })>>
-			<<set $cash -= ($surgeryCost*4)>>
+			<<run cashX(forceNeg($surgeryCost*4), "slaveSurgery", $activeSlave)>>
 			<</replace>>
 		<</link>> //Will cost <<print cashFormat(($surgeryCost*4))>>//
 	<</if>>
@@ -9114,7 +9114,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<replace "#result">>
 	$HeadGirl.slaveName understands the situation immediately. _He2 gets _himself2 and $activeSlave.slaveName dressed for a nice, non-sexual 'date' in $clubName, and leads $him out by the hand with a wink over _his2 shoulder to you. Your Head Girl understands just what kind of break from sexual servitude $activeSlave.slaveName really needs. They enjoy a nice meal, take a stroll and talk as friends, and get some inconsequential but relaxing beauty treatments together. They both @@.hotpink;enjoy the relaxation,@@ and $activeSlave.slaveName @@.green;feels much better@@ after the rest, too.
 	<<set $activeSlave.devotion += 4, $activeSlave.health += 10>>
-	<<set $cash -= 500>>
+	<<run cashX(-500, "event", $activeSlave)>>
 	<<set $slaves[$slaveIndices[$HeadGirl.ID]].devotion += 4>>
 	<</replace>>
 <</link>> //This option will cost <<print cashFormat(500)>>//
@@ -9838,7 +9838,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
 	As the sterile doors of the surgical equipment hiss closed over $him, you whisper in $his ear that $he's about to be cut up. $He looks at you with a mix of fear and wild excitement. After nearly a whole week of constant surgery and expensive drug-induced recovery, <<if canSee($activeSlave)>>$he finally gets to see $his new body in the mirror<<elseif $activeSlave.amp == 1>>you finally describe all the new implants in $his body and how they make $him look<<else>>you finally let $him feel $his new body, even helping $his hands to the less obvious changes<</if>>. $He has cartoonishly huge lips, boobs, and buttocks; $he looks like a caricature of a bimbo. $He cries with gratitude <<if canSee($activeSlave)>>to see $himself<<elseif $activeSlave.amp == 1>>to hear how $he looks<<else>>as $he feels $his new body<</if>>, and can scarcely wait to recover enough to get fucked. @@.hotpink;$He has become extremely devoted to you.@@
-	<<set $cash -= 125>>
+	<<run cashX(-125, "slaveSurgery", $activeSlave)>>
 	<<set $activeSlave.devotion += 10>>
 	<<set _surgeryAddict = Math.clamp(20000-$activeSlave.boobs, 0, 2000)>>
 	<<set $activeSlave.boobsImplant += _surgeryAddict, $activeSlave.boobs += _surgeryAddict>>
@@ -15231,7 +15231,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<replace "#result">>
 	Archimedes might have his lever, but give you a place to set such information as this, and you can move a mountain of money. Before he knows what has beset him, your tenant is bustled out of $arcologies[0].name and replaced by a favored and hopefully more honest competitor, who @@.green;is well aware of the score here.@@ $activeSlave.slaveName, who made this possible, spends the day <<if $activeSlave.preg > $activeSlave.pregData.normalBirth/2>>having $his pregnant belly moisturized, $his tired feet rubbed, $his cravings fulfilled, being<<else>>being<</if>> massaged, beautified, and pampered. You then take $him out for a lovely meal, allowing $him to wear clothing that's almost conservative by Free Cities standards, and take a nice walk around $arcologies[0].name's club, talking on light subjects. $He's @@.hotpink;deeply touched@@ by an evening of affection without sex, and $he @@.mediumaquamarine;trusts you@@ with all sorts of amusing whorehouse rumors.
 	<<set $activeSlave.devotion += 3, $activeSlave.trust += 3>>
-	<<set $cash -= 2000>>
+	<<run cashX(-2000, "event", $activeSlave)>>
 	<<set $arcologies[0].prosperity += 1>>
 	<</replace>>
 <</link>> //This will cost <<print cashFormat(2000)>>//
@@ -17223,7 +17223,6 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	You hold the tablet out to them wordlessly. It's displaying security footage of the three of them, boarding a public VTOL transport for another arcology nearby. The prominent timestamp is thirty minutes in the future. The scene changes, showing them partying in one of that arcology's nightclubs. You clear your throat, dragging their attention away from the counterfeited footage, and describe in detail the other evidence - tickets, identification checks, biometrics - that will prove they left your arcology and visited two others before regrettably disappearing. One of them tries, with utter predictability, to threaten you with her father, but you tell her bluntly that if he does make the effort, he'll be looking in the wrong place.
 	<br><br>
 	"We shouldn't have come here," one of them says dully. She's wrong in that they would have had no trouble at all if they hadn't offended you, but right in that here, they put themselves entirely under your power. Tourists would never visit if this were widely known, but fortunately, you've been successful at concealing this. They begin to cry, and then to beg, and then the drones bag them and take them away.
-	<<set $cash -= 25000>>
 	<<for _ress = 0; _ress < 3; _ress++>>
 		<<set $oneTimeDisableDisability = 1>>
 		<<if $arcologies[0].FSSupremacistLawME == 1>>
@@ -17258,6 +17257,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 		<<set $activeSlave.attrXX = random(10,20)>>
 		<<set $activeSlave.behavioralFlaw = either("bitchy", "arrogant")>>
 		<<run newSlave($activeSlave)>> /* skip New Slave Intro */
+		<<run cashX(-8000, "slaveTransfer", $activeSlave)>>
 	<</for>>
 	<br><br><span id="result2">
 	<<link "Let your public servant take revenge on them">>
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index 33ee6cb66a68ed9452377730ea1b2cf00f583460..cc9c489087f8beb5331690f9b1646c181a3d056e 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -1099,7 +1099,7 @@ $he adds impishly. Hearing this, $subSlave.slaveName lets the breast pop free of
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
 	Rather than answering $him directly, you tell $assistantName to clear $activeSlave.slaveName's and $subSlave.slaveName's schedules for the evening. $He <<if canSee($activeSlave)>>looks<<else>>smiles<</if>> at you with happy anticipation, but is puzzled when you don't give $him any further orders. "Um, thank you, <<Master>>," $he asks hesitantly. "But, I don't under<<s>>tand. What are we going to do?" Whatever you want, you tell $him. $He furrows $his brow, looking troubled, as though the concept is somehow alien to $him. After some thought, $he brightens and asks if $he can go tell $his <<if $activeSlave.relationship >= 5>>wife<<else>>girlfriend<</if>>. $He can, you respond, and the slave bounces over to give you a kiss before running out. It costs you a small sum in upkeep and other trifles to cover an unexpected unavailability of both slaves, but they deserve it. Their busy lives mean that their shifts rarely align exactly, and this is more time than they've had together in a long time. It isn't particularly exciting, but they enjoy themselves. They eat a meal in the kitchen together, watch the sunset from one of the penthouse balconies, make love out there, share a long shower, and then go to bed, spending the rest of the night cuddling and chatting quietly. The next morning, they come to see you hand in hand, and @@.hotpink;thank you in unison.@@ As they leave, $activeSlave.slaveName looks back over $his shoulder at you, and mouths 'that was perfect, <<= WrittenMaster($activeSlave)>>!'
-	<<set $cash -= 500>>
+	<<run cashX(-500, "event")>>
 	<<set $subSlave.devotion += 2>>
 	<<set $activeSlave.devotion += 2>>
 	<<set $slaves[$slaveIndices[$subSlave.ID]] = $subSlave>>
@@ -1115,7 +1115,7 @@ $he adds impishly. Hearing this, $subSlave.slaveName lets the breast pop free of
 		Rather than answering $him directly, you tell $assistantName to clear $activeSlave.slaveName's and $subSlave.slaveName's schedules for the evening, and then contact $Attendant.slaveName, the Attendant of your Spa, to instruct _himA to expect the two slaves for some quality time together. $Attendant.slaveName, of course, is all for it ("Leave it to me, <<Master $Attendant>>!"). _HeA greets the couple at the steamy entrance to the Spa an hour later, and takes charge of them with a matronly air, telling them to undress and relax.
 		<br><br>
 		It costs you a small sum in upkeep and other trifles to cover an unexpected unavailability of both slaves, but they deserve it, and your Attendant does not disappoint. After the slaves have soaked in the main pool for a while, _heA gives them a series of mud packs, hot rock massages, and skin treatments, always setting them up right next to each other. They chat a bit at first, but soon relax into companionable silence, holding hands and enjoying the pampering.<<if $Attendant.lactation > 0>> $Attendant.slaveName has their evening meal sent down, and supplements it with milk drunk fresh from _hisA own nipples.<</if>> This being your penthouse, _hisA services become quite sexual later in the night, as the Attendant applies all _hisA talents in choosing positions that emphasize $activeSlave.slaveName and $subSlave.slaveName being close to each other<<if $Attendant.bellyPreg >= 10000 && $activeSlave.bellyPreg >= 10000 && $subSlave.bellyPreg >= 10000>>, a difficult task given that they are all heavily pregnant,<<elseif $Attendant.belly >= 10000 && $activeSlave.belly >= 10000 && $subSlave.belly >= 10000>>, a difficult task given how big everyone's bellies are,<</if>> as they share $Attendant.slaveName's body. Much later, the Attendant sends you a brief message relaying their @@.hotpink;heartfelt thanks,@@ which _heA's passing to you because they're asleep together.
-		<<set $cash -= 500>>
+		<<run cashX(-500, "event")>>
 		<<set $subSlave.devotion += 3>>
 		<<set $activeSlave.devotion += 3>>
 		<<set $slaves[$slaveIndices[$subSlave.ID]] = $subSlave>>
@@ -1128,7 +1128,7 @@ $he adds impishly. Hearing this, $subSlave.slaveName lets the breast pop free of
 	Rather than answering $him directly, you tell $assistantName to clear $activeSlave.slaveName's and $subSlave.slaveName's schedules for the evening. $He looks at you with happy anticipation, but this is nothing to $his gratitude when you tell $him that you'll arrange a date night for them. Trusted slaves are often seen unchaperoned in your arcology, and there are several establishments that cater to slaveowners who wish to bring their girls out or even send them out alone. You tell $him you've made a reservation for $him and $his <<if $activeSlave.relationship >= 5>>wife<<else>>girlfriend<</if>> at one of the less formal places, an ethnic restaurant that manages to add spice to liquid slave nutrition without ruining its good qualities. They're to spend the night out, and can wear what they like. $He hurries off to collect $his _girl2 and get dressed, but also tries to keep thanking you on $his way out, and almost runs into the door frame as $he goes.
 	<br><br>
 	Since $he trusts you, they dress very daringly for slaves. That is, they dress about as conservatively as slaves can dress, in comfortable pants and soft sweaters whose high collars they roll down to keep their collars visible. Any hesitations citizens who see them might have are banished by their obvious love for each other, and their total lack of shame about having it seen. Indeed, as the night wears on they attract more than a few @@.green;admiring glances@@ from citizens who envy you the favors of the pair of <<if $girl == _girl2>>$girl<<else>>slave<</if>>s occupying one side of the corner booth. After all, they'd rather lean against each other than look at each other from across a table. The next day, they both come to you individually and @@.mediumaquamarine;thank you almost gravely,@@ quite aware of the trust you've placed in them.
-	<<set $cash -= 1000>>
+	<<run cashX(-1000, "event")>>
 	<<set $rep += 100>>
 	<<set $subSlave.trust += 2, $activeSlave.trust += 2>>
 	<<set $slaves[$slaveIndices[$subSlave.ID]] = $subSlave>>
diff --git a/src/uncategorized/costsWidgets.tw b/src/uncategorized/costsWidgets.tw
index c6b7403ff4780c89c3b3c35ef837e6fde3a01780..d406383f29b2244dc5be0e6aac6538489bde15b7 100644
--- a/src/uncategorized/costsWidgets.tw
+++ b/src/uncategorized/costsWidgets.tw
@@ -450,7 +450,7 @@
 
 
 <<widget "setupLastWeeksCash">>
-
+/*Feel free to add categories.  Just make sure to display them in costsBudget.tw as well!*/
 <<set $lastWeeksCashIncome = {
 /*Slave Jobs*/
 whore: 0,
diff --git a/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw b/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw
index 7afd0bf36b709e1930b51243b63fd8e5a88c2b8e..8c07ba8dc74d713ac8800de81564d42b20017092 100644
--- a/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw
+++ b/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw
@@ -46,7 +46,7 @@ This call is coming from a public kiosk, which is usually an indication that the
 <br><br>
 <span id="result">
 <<if $cash >= $contractCost>>
-[[Enslave the pair|RE FSEgyptianRevivalist acquisition workaround][$sibling = $activeSlave, $cash -= ($contractCost)]]
+[[Enslave the pair|RE FSEgyptianRevivalist acquisition workaround][$sibling = $activeSlave]]/*Billing will happen past the link based on $contractCost*/
 <<else>>
 	//You lack the necessary funds to enslave them.//
 <</if>>
diff --git a/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw b/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw
index b3ddc6de9f8e8f80c625353a63750d8829843223..57c2aaf511fb437d0d361f47b9e28e4e0a3d4958 100644
--- a/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw
+++ b/src/uncategorized/reFSEgyptianRevivalistAcquisitionWorkaround.tw
@@ -4,6 +4,7 @@
 They arrive hand-in-hand and don't let go of each other until the end of the enslavement process, and even after they break their grip and undress at your instruction, their eyes never stray far from each other. With a closer look at them, their blood relation is as obvious as their infatuation with one another. No wonder they couldn't keep it a secret.
 
 <<run newSlave($sibling)>>
+<<run cashX(($contractCost/2), "slaveTransfer", $sibling)>>
 
 <<set _secondSlave = clone($activeSlave)>>
 
@@ -98,3 +99,4 @@ They arrive hand-in-hand and don't let go of each other until the end of the ens
 <</if>>
 
 <<run newSlave(_secondSlave)>>
+<<run cashX(($contractCost/2), "slaveTransfer", _secondSlave)>>
diff --git a/src/uncategorized/rePokerNight.tw b/src/uncategorized/rePokerNight.tw
index 9610880760803f3327bc0837de598570859f6372..feaa75f287641943d961cbbc72ca207f92ab8881 100644
--- a/src/uncategorized/rePokerNight.tw
+++ b/src/uncategorized/rePokerNight.tw
@@ -42,7 +42,8 @@ On a particularly lackadaisical evening, you find yourself alerted to a message
 					<<replace "#bountyresult">>
 						<<if random(1,100) > 50>>
 						Despite your attempts to mitigate risk and play the safest hands possible, it seems lady luck has conspired against you this evening. However, even when your last chip is spent, your mercenaries pitch you a few chips to keep you in the game for the rest of the night. You may have lost most of your ¤, but it seems you've @@.green;made some friends.@@
-						<<set $rep += 1000, $cash -= 2500>>
+						<<set $rep += 1000>>
+						<<run cashX(-2500, "event")>>
 						<<else>>
 						While a careful eye for risk has buoyed you through the evening, ultimately lady luck is the decider in handing you the win in a number of close hands. Unfortunately your meticulous play limited your chance at a larger payout, and you only come away from the evening with <<print cashFormat(1000)>> more than you arrived with and @@.green;the respect of your mercenaries.@@
 						<<set $rep += 100>>
@@ -103,7 +104,8 @@ On a particularly lackadaisical evening, you find yourself alerted to a message
 								<<replace "#aliveresult">>
 									<<if random(1,100) > 50>>
 									For all your skillful maneuvering to reach this position, ultimately the win comes down to chance. This time, however, luck was not on your side. As the victor sweeps up $his spoils, the other mercenaries clap you on the back and offer their condolences for your defeat. Though you may have lost your ¤, it seems you've @@.green;made some friends.@@
-									<<set $rep += 1000, $cash -= 5000>>
+									<<set $rep += 1000>>
+									<<run cashX(-5000, "event")>>
 									<<else>>
 									For all your skillful maneuvering to reach this position, ultimately the win comes down to chance. This time, however, luck has rendered you the victor. A silence falls over the room as the result is declared, but after some time your opponent breaks the hush by joking that life as your slave is probably easier than fighting for $arcologies[0].name. After some awkward laughter the night continues, and at the end your former mercenary joins you on your trip back to the penthouse to submit to processing and to begin $his new life as your sexual servant. $He's not young, but $he's tough and not distrusting of you due to $his service in the $mercenariesTitle.
 									<br>
@@ -118,7 +120,8 @@ On a particularly lackadaisical evening, you find yourself alerted to a message
 								<<replace "#aliveresult">>
 									<<if random(1,100) > 50>>
 									For all your skillful maneuvering to reach this position, ultimately the win comes down to chance. This time, however, luck was not on your side. As the victor sweeps up $his spoils, the other mercenaries clap you on the back and offer their condolences for your defeat. Though you may have lost your ¤, it seems you've @@.green;made some friends.@@
-									<<set $rep += 1000, $cash -= 5000>>
+									<<set $rep += 1000>>
+									<<run cashX(-5000, "event")>>
 									<<else>>
 									For all your skillful maneuvering to reach this position, ultimately the win comes down to chance. This time, however, luck has rendered you the victor. Your opponent accepts $his defeat with grace and jokes to $his comrades that $he'll be fighting in $his underwear for the next few months, and their uproar of laughter fills the room. Though you take the lion's share of the ¤, your mercenaries also @@.green;had a good time fraternizing with you.@@
 									<<set $rep += 200>>
diff --git a/src/uncategorized/seExpiration.tw b/src/uncategorized/seExpiration.tw
index 9596272a490d1470a6c1940cccb058a5e5b1b12b..4186a681c36f6772eb81b576bcd3dca6ac1e33ae 100644
--- a/src/uncategorized/seExpiration.tw
+++ b/src/uncategorized/seExpiration.tw
@@ -36,7 +36,7 @@ $activeSlave.slaveName's indentured servitude is ending this week, meaning that
 		<<link "Plead necessity and reactivate $his indenture">>
 			<<replace "#result">>
 				You plead necessity and place $him under another indenture, paying the trivial fees left over once $he has been charged for $his own forecasted upkeep. Naturally, $he offers no response at all to any of this.
-				<<set $cash -= 1000>>
+				<<run cashX(-1000, "event", $activeSlave)>>
 				<<set $lowerClass -= 1>>
 				<<set $expired = 0, $expiree = 0>>
 				<<for $i = 0; $i < $slaves.length; $i++>>
@@ -72,7 +72,7 @@ $activeSlave.slaveName's indentured servitude is ending this week, meaning that
 			<<replace "#result">>
 				$He's beside $himself with joy when you accept $his plea and enslave $him. $He's given you the finest proof of loyalty a slave possibly can, having tasted a moment of freedom under the law, and thrown it away with utter contempt. $His $activeSlave.eyeColor eyes <<if canSee($activeSlave)>>watch you<<else>>are wide<</if>> with eager anticipation, radiating gladness that the prospect of separation from you has gone.
 				<<set $activeSlave.indenture = -1, $activeSlave.indentureRestrictions = 0>>
-				<<set $cash -= 1000>>
+				<<run cashX(-1000, "event", $activeSlave)>>
 				<<set $lowerClass -= 1>>
 				<<set $expired = 0, $expiree = 0>>
 				<<for $i = 0; $i < $slaves.length; $i++>>
diff --git a/src/uncategorized/seIndependenceDay.tw b/src/uncategorized/seIndependenceDay.tw
index 493258414492fa787098cf0f350ff9ef72079720..7f408a41f21d94c321ace41ec8091cb0b4b07fee 100644
--- a/src/uncategorized/seIndependenceDay.tw
+++ b/src/uncategorized/seIndependenceDay.tw
@@ -326,7 +326,8 @@ In the Free Cities, Independence Day falls on the day when the Free City achieve
 <br><<link "Pay for a lavish fireworks display">>
 	<<replace "#result2">>
 	<br><br>Once darkness falls outside the arcology, a traditional fireworks display erupts from mortars mounted on your penthouse balconies. The noise and light @@.green;delights@@ your citizens, terrifies the arcology's stupider slaves, and serves a useful ancillary purpose in defense preparedness. The arcology's radar and laser sensors track the display, using it as an opportunity to calibrate the point defense systems on real targets. There is general agreement that this sort of thing should be a yearly tradition here, just like it was in some parts of the old world: old ideas aren't all bad.
-	<<set $rep += 1000, $cash -= 10000>>
+	<<set $rep += 1000>>
+	<<run cashX(-10000, "event")>>
 	<</replace>>
 <</link>> //Costs @@.yellowgreen;<<print cashFormat(10000)>>@@// </span>
 
diff --git a/src/uncategorized/seNicaeaAnnouncement.tw b/src/uncategorized/seNicaeaAnnouncement.tw
index c0ccb72e8c99101894648d893b2e88b9fc5a2e2f..f4b296e0be65326eefae6cec394d3e81066b5414 100644
--- a/src/uncategorized/seNicaeaAnnouncement.tw
+++ b/src/uncategorized/seNicaeaAnnouncement.tw
@@ -36,7 +36,8 @@ Hosting a new religion's first synod will be expensive and time-consuming, but w
 		"Wonderful," says the evangelistic lady slaveowner. She orders that the newly consecrated slave approach her, and ends the call.
 	<</if>>
 	You have a tremendous amount of work to do, and not much time to do it. You immediately set aside a sizable sum as an initial budget for the event itself. The first major decision you'll need to make about the council is who to invite. As one of Chattel Religionism's most prominent figures, you have a good idea of who you'd have to include to ensure that the council's agreements have as much weight as possible; $assistantName immediately begins collating background information on potential attendees, to assist you further.
-	<<set $nicaeaInvolvement = 1, $nicaeaPower += 1, $nicaeaInfluence = 1, $nicaeaName = "Council of " + $arcologies[0].name, $cash -= 10000>>
+	<<set $nicaeaInvolvement = 1, $nicaeaPower += 1, $nicaeaInfluence = 1, $nicaeaName = "Council of " + $arcologies[0].name>>
+	<<run cashX(-10000, "event")>>
 	<</replace>>
 <</link>> //This will cost <<print cashFormat(10000)>>, and influencing the outcome will likely require further investment//
 <br><<link "Oppose the council">>
diff --git a/src/uncategorized/seNicaeaPreperation.tw b/src/uncategorized/seNicaeaPreperation.tw
index c809772da8c0cd8c75b9e2058db849403cc58405..b0462c2ad241b80f4219d4cdc43b4bfc07f95e71 100644
--- a/src/uncategorized/seNicaeaPreperation.tw
+++ b/src/uncategorized/seNicaeaPreperation.tw
@@ -72,7 +72,8 @@ Finally, you could use money to influence the Council. Everyone who's likely to
 <br><<link "Host a festival to coincide with their arrival">>
 	<<replace "#result3">>
 	Good works will spread the joy of a Chattel Religionist revival, and make you even more influential with the Council. You plan a public festival as part of the event.
-	<<set $cash -= 50000, $nicaeaInfluence += 1>>
+	<<set $nicaeaInfluence += 1>>
+	<<run cashX(-50000, "event")>>
 	<</replace>>
 <</link>> //This will cost <<print cashFormat(50000)>>//
 </span>
diff --git a/src/uncategorized/specialSlave.tw b/src/uncategorized/specialSlave.tw
index 4a13de717b5ee82e8504f4bd64056d6e285448d4..320ebfe278156ed91a6c387c8ca0259be9e9fc90 100644
--- a/src/uncategorized/specialSlave.tw
+++ b/src/uncategorized/specialSlave.tw
@@ -97,7 +97,7 @@
 
 	<br><br>
 
-	[[Pay to access complete catalog of slaves|Complete Catalog][$cash -= 1000]] //Costs <<print cashFormat(1000)>>.//
+	[[Pay to access complete catalog of slaves|Complete Catalog][cashX(-1000, "slaveTransfer")]] //Costs <<print cashFormat(1000)>>.//
 
 	<br><br>
 
diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw
index 498347e108e7b0d0caa0017fdca46fa520a93f65..174ed2058a192c41d3ab35a92c2063fc77981edb 100644
--- a/src/uncategorized/surgeryDegradation.tw
+++ b/src/uncategorized/surgeryDegradation.tw
@@ -1737,7 +1737,7 @@ As the remote surgery's long recovery cycle completes,
 	<<if $cyberMod == 0>>
 		During the procedure you may install a prosthetic interface so that $he may use prosthetic limbs immediately afterwards.<br>
 		This will cost extra and put further strain on $activeSlave.slaveName's health, but choosing to do this now will be cheaper and be less damaging to $his health than if you were to perform the procedures separately.<br>
-		[[Install prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 1, $activeSlave.health -= 10, $surgeryType = "ampInterface", $cash -= Math.trunc($surgeryCost/2)]]<br>
+		[[Install prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 1, $activeSlave.health -= 10, $surgeryType = "ampInterface", cashX(forceNeg(Math.trunc($surgeryCost/2)), "slaveSurgery", $activeSlave)]]<br>
 		[[Only perform amputation|Surgery Degradation][$surgeryType = "amp"]]
 	<<else>>
 		Since you invested in cybernetic technology you can install PLimb interface into $his body during the operation.<br>