diff --git a/src/SpecialForce/Report.tw b/src/SpecialForce/Report.tw
index 1795725b1f51d865d0aed2f9863c0e87d6b79572..8e14d0da9e987d9818f11aa7fd58b06545df1a0b 100644
--- a/src/SpecialForce/Report.tw
+++ b/src/SpecialForce/Report.tw
@@ -11,7 +11,7 @@
 		<<set $SFUnit.Troops += Math.ceil(random(-2*$SFUnit.Troops/100,-3*$SFUnit.Troops/100))>>
 	<</if>>
 <</if>>
-<<set _Income = 1000000,_actionMultiplier = 1,_troopMultiplier = 1,_unitMultiplier = 1,_depravityMultiplier = 1,_SFupkeep = 0,_FNGs = 10,_Trade = 0.025>>
+<<set _SFIncome = 75000,_actionMultiplier = 1,_troopMultiplier = 1,_unitMultiplier = 1,_depravityMultiplier = 1,_SFupkeep = 0,_FNGs = 10,_Trade = 0.025>>
 <<if $SF.SpecOps > 0>>
 	<<if $SF.SpecOps === 1>> <<set $SFUC = Math.ceil($SFUnit.Troops*.1),$SFUnit.Troops-$SFUC>>
 	<<else>> <<set $SFUC = Math.ceil($SFUnit.Troops*.25),$SFUnit.Troops-$SFUC>> <</if>>
@@ -24,61 +24,61 @@
 <</if>>
 
 <<if $SFUnit.Firebase > 0>>
-	<<set _FNGs += $SFUnit.Firebase,_Trade += 0.5*$SFUnit.Firebase,_unitMultiplier += 0.2*$SFUnit.Firebase,_SFupkeep += 500*(10+$SFUnit.Firebase)>>
+	<<set _FNGs += $SFUnit.Firebase,_Trade += 0.5*$SFUnit.Firebase,_unitMultiplier += 7.5*$SFUnit.Firebase+2*Math.pow($SFUnit.Firebase,2),_SFupkeep += 500*(10+$SFUnit.Firebase)>>
 <</if>>
 <<if $SFUnit.Armoury > 0>>
-	<<set _FNGs += (2*$SFUnit.Armoury),_Trade += 0.25*$SFUnit.Armoury,_unitMultiplier += 0.3*$SFUnit.Armoury, _SFupkeep += 100*$SFUnit.Armoury>>
+	<<set _FNGs += (2*$SFUnit.Armoury),_Trade += 0.25*$SFUnit.Armoury,_unitMultiplier += 7.5*$SFUnit.Armoury+2*Math.pow($SFUnit.Armoury,2), _SFupkeep += 100*$SFUnit.Armoury>>
 <</if>>
 <<if $SFUnit.Drugs > 0>>
-	<<set _FNGs += $SFUnit.Drugs,_Trade += 0.25*$SFUnit.Drugs,_unitMultiplier += 0.3*$SFUnit.Drugs,_SFupkeep += 300*$SFUnit.Drugs>>
+	<<set _FNGs += $SFUnit.Drugs,_Trade += 0.25*$SFUnit.Drugs,_unitMultiplier += 7.5*$SFUnit.Drugs+2*Math.pow($SFUnit.Drugs,2),_SFupkeep += 300*$SFUnit.Drugs>>
 <</if>>
 <<if $SFUnit.Firebase >= 1>>
 	<<if $SFUnit.AV > 0>>
-		<<set _FNGs += $SFUnit.AV,_Trade += 0.25*$SFUnit.AV,_unitMultiplier += 0.8*$SFUnit.AV,_SFupkeep += 1000*$SFUnit.AV>>
+		<<set _FNGs += $SFUnit.AV,_Trade += 0.25*$SFUnit.AV,_unitMultiplier += 7.5*$SFUnit.AV+2*Math.pow($SFUnit.AV,2),_SFupkeep += 1000*$SFUnit.AV>>
 	<</if>>
 	<<if $SFUnit.TV > 0>>
-		<<set _FNGs += $SFUnit.TV,_Trade += 0.25*$SFUnit.TV,_unitMultiplier += 0.7*$SFUnit.TV, _SFupkeep += 800*$SFUnit.TV>>
+		<<set _FNGs += $SFUnit.TV,_Trade += 0.25*$SFUnit.TV,_unitMultiplier += 7.5*$SFUnit.TV+2*Math.pow($SFUnit.TV,2), _SFupkeep += 800*$SFUnit.TV>>
 	<</if>>
 	<<if $SFUnit.PGT > 0>>
-		<<set _Trade  += 0.25*($SFUnit.PGT),_unitMultiplier += 2.5*$SFUnit.PGT,_SFupkeep += 5000+1000*$SFUnit.PGT>>
+		<<set _Trade  += 0.25*($SFUnit.PGT),_unitMultiplier += 15*$SFUnit.PGT+3*Math.pow($SFUnit.PGT,2),_SFupkeep += 5000+1000*$SFUnit.PGT>>
 	<</if>>
 <</if>>
 <<if $SFUnit.Firebase >= 2 && $SFUnit.Drones > 0>>
-	<<set _FNGs += $SFUnit.Drones,_Trade += 0.5*$SFUnit.Drones,_unitMultiplier += 0.5*$SFUnit.Drones,_SFupkeep += 500*$SFUnit.Drones>>
+	<<set _FNGs += $SFUnit.Drones,_Trade += 0.5*$SFUnit.Drones,_unitMultiplier += 7.5*$SFUnit.Drones+2*Math.pow($SFUnit.Drones,2),_SFupkeep += 500*$SFUnit.Drones>>
 <</if>>
 
 <<if $SFUnit.Firebase >= 4>>
 	<<if $SFUnit.AA > 0>>
-		<<set _FNGs += $SFUnit.AA,_Trade += 0.25*$SFUnit.AA,_unitMultiplier += $SFUnit.AA,_SFupkeep += 1000*$SFUnit.AA>>
+		<<set _FNGs += $SFUnit.AA,_Trade += 0.25*$SFUnit.AA,_unitMultiplier += 7.5*$SFUnit.AA+2*Math.pow($SFUnit.AA,2),_SFupkeep += 1000*$SFUnit.AA>>
 	<</if>>
 	<<if $SFUnit.TA > 0>>
-		<<set _FNGs += $SFUnit.TA,_Trade += 0.25*$SFUnit.TA,_unitMultiplier += 0.8*$SFUnit.TA,_SFupkeep += 800*$SFUnit.TA>>
+		<<set _FNGs += $SFUnit.TA,_Trade += 0.25*$SFUnit.TA,_unitMultiplier += 7.5*$SFUnit.TA+2*Math.pow($SFUnit.TA,2),_SFupkeep += 800*$SFUnit.TA>>
 	<</if>>
 	<<if $SFUnit.SpacePlane > 0>>
-		<<set _FNGs += $SFUnit.SpacePlane,_Trade += 0.25*$SFUnit.SpacePlane,_unitMultiplier += $SFUnit.SpacePlane,_SFupkeep += 1000*$SFUnit.SpacePlane>>
+		<<set _FNGs += $SFUnit.SpacePlane,_Trade += 0.25*$SFUnit.SpacePlane,_unitMultiplier += 7.5*$SFUnit.SpacePlane+2*Math.pow($SFUnit.SpacePlane,2),_SFupkeep += 1000*$SFUnit.SpacePlane>>
 	<</if>>
 	<<if $SFUnit.GunS > 0>>
-		<<set _FNGs += $SFUnit.GunS,_Trade  += 0.25*$SFUnit.GunS,_unitMultiplier += 2*$SFUnit.GunS,_SFupkeep += 3000+700*$SFUnit.GunS>>
+		<<set _FNGs += $SFUnit.GunS,_Trade  += 0.25*$SFUnit.GunS,_unitMultiplier += 12*$SFUnit.GunS+3*Math.pow($SFUnit.GunS,2),_SFupkeep += 3000+700*$SFUnit.GunS>>
 	<</if>>
 	<<if $SFUnit.Satellite > 0>>
-		<<set _FNGs += $SFUnit.Satellite,_Trade  += 0.25*$SFUnit.Satellite,_unitMultiplier += 3*$SFUnit.Satellite>>
+		<<set _FNGs += $SFUnit.Satellite,_Trade  += 0.25*$SFUnit.Satellite,_unitMultiplier += 15*$SFUnit.Satellite+5*Math.pow($SFUnit.Satellite,2)>>
 	<</if>>
 	<<if $SFUnit.GiantRobot > 0>>
-		<<set _FNGs += $SFUnit.GiantRobot,_Trade  += 0.25*$SFUnit.GiantRobot,_unitMultiplier += 3*$SFUnit.GiantRobot,_SFupkeep += 10000+1500*$SFUnit.GiantRobot>>
+		<<set _FNGs += $SFUnit.GiantRobot,_Trade  += 0.25*$SFUnit.GiantRobot,_unitMultiplier += 15*$SFUnit.GiantRobot+5*Math.pow($SFUnit.GiantRobot,2),_SFupkeep += 10000+1500*$SFUnit.GiantRobot>>
 	<</if>>
 	<<if $SFUnit.MissileSilo > 0>>
-		<<set _Trade += 0.25*$SFUnit.MissileSilo,_unitMultiplier += 3*$SFUnit.MissileSilo,_SFupkeep += 1000*$SFUnit.MissileSilo>>
+		<<set _Trade += 0.25*$SFUnit.MissileSilo,_unitMultiplier += 15*$SFUnit.MissileSilo+5*Math.pow($SFUnit.MissileSilo,2),_SFupkeep += 1000*$SFUnit.MissileSilo>>
 <</if>>
 <</if>>
 
 <<if $SFUnit.AircraftCarrier > 0>>
-	<<set _FNGs += $SFUnit.AircraftCarrier,_Trade  += 0.25*$SFUnit.AircraftCarrier,_unitMultiplier += $SFUnit.AircraftCarrier,_SFupkeep += 800*$SFUnit.AircraftCarrier>>
+	<<set _FNGs += $SFUnit.AircraftCarrier,_Trade  += 0.25*$SFUnit.AircraftCarrier,_unitMultiplier += 9*$SFUnit.AircraftCarrier+3*Math.pow($SFUnit.AircraftCarrier,2),_SFupkeep += 800*$SFUnit.AircraftCarrier>>
 <</if>>
 <<if $SFUnit.Sub > 0>>
-	<<set _FNGs += $SFUnit.Sub,_Trade  += 0.25*$SFUnit.Sub,_unitMultiplier += 0.9*$SFUnit.Sub,_SFupkeep += 900*$SFUnit.Sub>>
+	<<set _FNGs += $SFUnit.Sub,_Trade  += 0.25*$SFUnit.Sub,_unitMultiplier += 7.5*$SFUnit.Sub+2*Math.pow($SFUnit.Sub,2),_SFupkeep += 900*$SFUnit.Sub>>
 <</if>>
 <<if $SFUnit.HAT > 0>>
-	<<set _Trade += 0.25*$SFUnit.HAT,_unitMultiplier += 0.7*$SFUnit.HAT,_SFupkeep += 700*$SFUnit.HAT>>
+	<<set _Trade += 0.25*$SFUnit.HAT,_unitMultiplier += 7.5*$SFUnit.HAT+2*Math.pow($SFUnit.HAT,2),_SFupkeep += 700*$SFUnit.HAT>>
 <</if>>
 
 <<set _SFD = $SF.Depravity>>
@@ -94,14 +94,15 @@
 	<<case "shell shocked">>
 		<<set _Trade += 0.05,_SFD -= 0.05,_unitMultiplier -= 0.5>>
 <</switch>>
-<<if $SF.Target == "raiding">> <<set _SFD += 0.05,_actionMultiplier += 1>>
+<<if $SF.Target == "raiding">> <<set _SFD += 0.05,_actionMultiplier += 0.5>>
 <<elseif $SF.Target == "secure">> <<set _SFD -= 0.05,_actionMultiplier += 0.2>> 
 <<else>><<set _SFD -= 0.1,_actionMultiplier -= 0.5>><</if>>
-<<if $SF.ROE == "free">> <<set _actionMultiplier *= .8,_SFD += 0.05,_Trade += _Trade*.95>>
-<<elseif $SF.ROE == "hold">> <<set _actionMultiplier *= 1.2,_SFD -= 0.05,_Trade += _Trade*1.05>> <</if>>
-<<if $SF.Regs == "none">> <<set _actionMultiplier *= .8,_SFD += 0.05,_Trade += _Trade*.95>>
-<<elseif $SF.Regs == "strict">> <<set _actionMultiplier *= 1.2,_SFD -= 0.05,_Trade += _Trade*1.05>> <</if>>
-<<if _SFD != 0>><<set _depravityMultiplier = 1+_SFD>>
+<<if $SF.ROE == "free">> <<set _actionMultiplier *= 0.8,_SFD += 0.05,_Trade += _Trade*.95>>
+<<elseif $SF.ROE == "hold">> <<set _actionMultiplier *= 1.1,_SFD -= 0.05,_Trade += _Trade*1.05>> <</if>>
+<<if $SF.Regs == "none">> <<set _actionMultiplier *= 0.8,_SFD += 0.05,_Trade += _Trade*.95>>
+<<elseif $SF.Regs == "strict">> <<set _actionMultiplier *= 1.1,_SFD -= 0.05,_Trade += _Trade*1.05>> <</if>>
+<<set _depravityMultiplier = 1+_SFD>>
+<<if _SFD != 0>>
 <<if _SFD < 0>> <<set _ef0 = _SFD*10>>
 <<elseif _SFD > 0>> <<set _ef0 = 1-(_SFD/10)>> <</if>>
 	<<set _Trade += _Trade*(_ef0)>> <</if>>
@@ -115,13 +116,15 @@
 <</if>>
 <<if $secExp > 0>> <<set $authority += $SF.Units*10,$authority = Math.clamp($authority, 0, 20000)>> <</if>>
 
-<<set _Income = Math.ceil(_Income*_troopMultiplier*_unitMultiplier*_actionMultiplier*_depravityMultiplier-_SFupkeep),$SFUnit.Troops += Math.round(_FNGs/2)>>
+<<set _SFIncome = Math.ceil(_SFIncome*_troopMultiplier*_unitMultiplier*_actionMultiplier*_depravityMultiplier-_SFupkeep),$SFUnit.Troops += Math.round(_FNGs/2)>>
+/*Remove below line if hard mode ever gets fixed*/
+<<if $economy > 1>><<set _SFIncome = Math.ceil(_SFIncome*(1+($week/10)))>><</if>>
 <<if $SFUnit.Troops > 2000>> <<set $SFUnit.Troops = random(1955,1999)>> <</if>>
 <<if $rep > 20000>> <<set $rep = 20000>> <</if>>
 <<if $arcologies[0].prosperity > $AProsperityCap>>
 	<<set $arcologies[0].prosperity = $AProsperityCap>> <</if>>
-<<if _Income >= 100000>>
-	<<set _Profitable = 1,$SF.Subsidy = 0,$cash += _Income>>
+<<if _SFIncome >= 100000>>
+	<<set _Profitable = 1,$SF.Subsidy = 0,$cash += _SFIncome>>
 <<else>> <<set _Profitable = 0>> <</if>>
 
 <<if $SFUnit.Drugs >= 8 || $SFUnit.Drugs >= 10>> <<set _Deaths = 0,_SurvivalChance = 50>>
@@ -152,7 +155,7 @@ locating and striking targets of opportunity, capturing both material loot and n
 These activities have, overall, @@.green;improved@@ your arcology's prosperity.
 The goods procured by the $SF.Lower this week, after accounting for the spoils retained by individual soldiers were
 <<if _Profitable>>
-@@.green;more than sufficient@@ to cover expenses. Excess materiel and human assets totaling @@.yellowgreen;<<print cashFormat(_Income)>>@@ (after liquidation) were transferred to your accounts.
+@@.green;more than sufficient@@ to cover expenses. Excess materiel and human assets totaling @@.yellowgreen;<<print cashFormat(_SFIncome)>>@@ (after liquidation) were transferred to your accounts.
 <<else>>
 @@.red;barely enough@@ to cover expenses. More growth will be needed to ensure profitability.
 <</if>>