diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js
index d49802024c0f20a68b5aadd5f9582c3787ad6c17..05b17490418cdbdb73ba2c2a3e878b7790546d83 100644
--- a/src/data/backwardsCompatibility/backwardsCompatibility.js
+++ b/src/data/backwardsCompatibility/backwardsCompatibility.js
@@ -1258,6 +1258,7 @@ App.Update.slaveRecords = function(node) {
 					child.spermY = normalRandInt(50, 5);
 				}
 				App.Facilities.Nursery.InfantDatatypeCleanup(child);
+				child.inbreedingCoeff = ibc.coeff(child);
 			} else {
 				App.Update.Slave(child);
 				App.Entity.Utils.SlaveDataSchemeCleanup(child, true);
@@ -1280,6 +1281,11 @@ App.Update.slaveRecords = function(node) {
 };
 
 App.Update.genePoolRecords = function(node) {
+	if (V.releaseID < 1075) {
+		let ib_coeff = ibc.coeff_slaves(V.genePool);
+		V.genePool.forEach(g => {g.inbreedingCoefficient = ib_coeff[g.ID]});
+	}
+
 	for (let bci = 0; bci < V.genePool.length; bci++) {
 		App.Update.Slave(V.genePool[bci], true);
 		let slave = V.genePool[bci];
diff --git a/src/data/backwardsCompatibility/updateSlaveObject.js b/src/data/backwardsCompatibility/updateSlaveObject.js
index 0e63c24a3c0498114559e63f64870f2c5a23a9ba..1747ddfe272b9dab3fc2a48a7bba9c0650c17089 100644
--- a/src/data/backwardsCompatibility/updateSlaveObject.js
+++ b/src/data/backwardsCompatibility/updateSlaveObject.js
@@ -1026,4 +1026,14 @@ App.Update.Slave = function(slave, genepool = false) {
 			}
 		}
 	}
+	
+	if (V.releaseID < 1075) {
+		slave.inbreedingCoeff = ibc.coeff(slave);
+		slave.womb.forEach(f => {
+			// Use null as the ID, since fetuses are missing it
+			f.genetics.inbreedingCoeff = ibc.coeff(
+				{ID: null, mother: f.genetics.mother, father: f.genetics.father}
+			);
+		});
+	}
 };
diff --git a/src/facilities/nursery/widgets/children/ChildState.js b/src/facilities/nursery/widgets/children/ChildState.js
index 8de31f2d3e8fb185dbe124bb6123328325e7dd3b..4adb08d4e2c425c7988eda3e9315ba5bc86acd24 100644
--- a/src/facilities/nursery/widgets/children/ChildState.js
+++ b/src/facilities/nursery/widgets/children/ChildState.js
@@ -1931,5 +1931,7 @@ App.Facilities.Nursery.ChildState = class ChildState {
 		this.lastWeeksRepIncome = 0;
 		/** Not currently used, will work similarly to the cash variables above */
 		this.lastWeeksRepExpenses = 0;
+		/** Slave's inbreeding coefficient */
+		this.inbreedingCoeff = 0;
 	}
 };
diff --git a/src/facilities/nursery/widgets/infants/InfantState.js b/src/facilities/nursery/widgets/infants/InfantState.js
index f50c3506b54d851f0bbd744d250c0b8ab9f8644b..bad32d731988231611f9575cd12549d622658b95 100644
--- a/src/facilities/nursery/widgets/infants/InfantState.js
+++ b/src/facilities/nursery/widgets/infants/InfantState.js
@@ -187,5 +187,7 @@ App.Facilities.Nursery.InfantState = class InfantState {
 		this.spermY = 50;
 		/** how many weeks until the child is ready for release */
 		this.growTime = 156;
+		/** Slave's inbreeding coefficient */
+		this.inbreedingCoeff = 0;
 	}
 };
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 0313f4892c1647257af7136a5957860d5b24dfe2..0024d31a7397bcd6d7d3e257434551ea9b399c24 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -2501,6 +2501,8 @@ App.Entity.SlaveState = class SlaveState {
 		this.whoreClass = 0;
 		/** Maximum class for whore to target */
 		this.effectiveWhoreClass = 0;
+		/** Slave's inbreeding coefficient */
+		this.inbreedingCoeff = 0;
 	}
 
 	/** Creates an object suitable for setting nested attributes as it would be a SlaveState
diff --git a/src/js/ibcJS.js b/src/js/ibcJS.js
index b34126251aa47acca8d6d5024bbcf8f5afc9b886..dbbb3ea800a98bb1f508bd069590128f3912a7bd 100644
--- a/src/js/ibcJS.js
+++ b/src/js/ibcJS.js
@@ -290,7 +290,16 @@ globalThis.ibc = (() => {
     };
 
     // Determine the coefficient of inbreeding of a single slave
-    let coeff_slave = slave => coeff_slaves([slave])[slave.ID];
+    let coeff_slave = slave => {
+        if ("inbreedingCoeff" in slave && slave.inbreedingCoeff !== -1)
+            return slave.inbreedingCoeff;
+
+        let gp = find_gp(slave.ID);
+        if (gp !== null && "inbreedingCoeff" in gp && gp.inbreedingCoeff !== -1)
+            return gp.inbreedingCoeff;
+
+        return coeff_slaves([slave])[slave.ID];
+    };
 
     // Determine the kinship between one and many slaves. Returns an mapping from the ID of each of
     // the slaves in `others` to its kinship with slave `a`
diff --git a/src/npc/generate/generateGenetics.js b/src/npc/generate/generateGenetics.js
index 250afa87426477062e046f46b602395e402c13e3..8e7ad2bc128c87c0034fdb0bc336d1dc65acaf21 100644
--- a/src/npc/generate/generateGenetics.js
+++ b/src/npc/generate/generateGenetics.js
@@ -97,6 +97,7 @@ globalThis.generateGenetics = (function() {
 		genes.motherName = setMotherName(activeMother);
 		genes.father = setFatherID(actor2);
 		genes.fatherName = setFatherName(father, activeFather, actor2);
+		genes.inbreedingCoeff = ibc.kinship(mother, father);
 		genes.nationality = setNationality(father, mother);
 		genes.geneticQuirks = setGeneticQuirks(activeFather, activeMother, genes.gender);
 		genes.skin = setSkin(father, mother, actor2);
@@ -1350,6 +1351,8 @@ globalThis.generateChild = function (mother, ovum, incubator=false) {
 		child.navelPiercing = 0;
 	}
 
+	child.inbreedingCoeff = genes.inbreedingCoeff;
+
 	generatePronouns(child);
 
 	return child;
diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js
index 4efbdaf320adf2e8d164496d3c6f4216be6eab5f..fe3b61163ee21ecd9c20c22885b90b8f8fec363c 100644
--- a/src/player/js/PlayerState.js
+++ b/src/player/js/PlayerState.js
@@ -1991,6 +1991,8 @@ App.Entity.PlayerState = class PlayerState {
 		 *
 		 * 0: no; 1: yes */
 		this.staminaPills = 0;
+		/** Player's coefficient of inbreeding */
+		this.inbreedingCoeff = 0;
 	}
 
 	/** Creates an object suitable for setting nested attributes as it would be a SlaveState
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index ee9c226b664eca66be129389643e7659a3df1411..4a1ed4eeac6e86a66b17cdfda37e3e0ba63d4cd4 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -164,6 +164,7 @@
 <<set $args[0].albinismOverride = $args[1].albinismOverride>>
 <<set $args[0].clone = $args[1].clone>>
 <<set $args[0].cloneID = $args[1].cloneID>>
+<<set $args[0].inbreedingCoeff = $args[1].inbreedingCoeff>>
 
 <<set $args[0].canRecruit = 0>>