diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/AbrahamsonGulerce_2020.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/AbrahamsonGulerce_2020.java
index 16cd08f2b8c58dd82b4443ea3895bc00b96b1f1e..b02b7fd99106b1190121d43d39fcf69529c0001e 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/AbrahamsonGulerce_2020.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/AbrahamsonGulerce_2020.java
@@ -244,7 +244,7 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel {
   }
 
   @Override
-  public final LogicTree<GroundMotion> calc(GmmInput in) {
+  public LogicTree<GroundMotion> calc(GmmInput in) {
 
     if (coeffs.imt == PGV) {
       GroundMotion pgv = UsgsPgvSupport.calcAB20Pgv(subtype, in);
@@ -449,6 +449,22 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel {
     }
   }
 
+  static final class GlobalInterfaceNoEpi extends GlobalInterface {
+    static final String NAME = GlobalInterface.NAME + " (no epi)";
+
+    GlobalInterfaceNoEpi(Imt imt) {
+      super(imt);
+    }
+
+    @Override
+    public final LogicTree<GroundMotion> calc(GmmInput in) {
+      // TODO epistemic uncertainty should be configurable
+      // or controlled in the main calc method
+      GroundMotion gm = super.calc(in).get(1).value();
+      return GroundMotions.createTree(gm.mean(), gm.sigma());
+    }
+  }
+
   static final class GlobalInterfaceAkAdjusted extends GlobalInterface {
     static final String NAME = GlobalInterface.NAME + " (Alaska Adjusted)";
 
@@ -462,7 +478,7 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel {
     }
   }
 
-  static final class GlobalSlab extends Global {
+  static class GlobalSlab extends Global {
     static final String NAME = Global.NAME + " : " + SLAB;
 
     GlobalSlab(Imt imt) {
@@ -475,6 +491,22 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel {
     }
   }
 
+  static final class GlobalSlabNoEpi extends GlobalSlab {
+    static final String NAME = GlobalSlab.NAME + " (no epi)";
+
+    GlobalSlabNoEpi(Imt imt) {
+      super(imt);
+    }
+
+    @Override
+    public final LogicTree<GroundMotion> calc(GmmInput in) {
+      // TODO epistemic uncertainty should be configurable
+      // or controlled in the main calc method
+      GroundMotion gm = super.calc(in).get(1).value();
+      return GroundMotions.createTree(gm.mean(), gm.sigma());
+    }
+  }
+
   static class CascadiaInterface extends Cascadia {
     static final String NAME = Cascadia.NAME + " : " + INTERFACE;
 
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
index ef81df50187a11fb0ad2ba8b4bfc21f10fce91ec..b6b23272dc3d2f555b64c33f16933738f8c546d3 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
@@ -445,6 +445,13 @@ public enum Gmm {
       AbrahamsonGulerce_2020.COEFFS,
       AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE),
 
+  /** @see AbrahamsonGulerce_2020 */
+  AG_20_GLOBAL_INTERFACE_NO_EPI(
+      AbrahamsonGulerce_2020.GlobalInterfaceNoEpi.class,
+      AbrahamsonGulerce_2020.GlobalInterfaceNoEpi.NAME,
+      AbrahamsonGulerce_2020.COEFFS,
+      AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE),
+
   /** @see AbrahamsonGulerce_2020 */
   AG_20_GLOBAL_INTERFACE_AK_ADJUSTED(
       AbrahamsonGulerce_2020.GlobalInterfaceAkAdjusted.class,
@@ -459,6 +466,13 @@ public enum Gmm {
       AbrahamsonGulerce_2020.COEFFS,
       AbrahamsonGulerce_2020.CONSTRAINTS_SLAB),
 
+  /** @see AbrahamsonGulerce_2020 */
+  AG_20_GLOBAL_SLAB_NO_EPI(
+      AbrahamsonGulerce_2020.GlobalSlabNoEpi.class,
+      AbrahamsonGulerce_2020.GlobalSlabNoEpi.NAME,
+      AbrahamsonGulerce_2020.COEFFS,
+      AbrahamsonGulerce_2020.CONSTRAINTS_SLAB),
+
   /** @see AbrahamsonGulerce_2020 */
   AG_20_CASCADIA_INTERFACE(
       AbrahamsonGulerce_2020.CascadiaInterface.class,
@@ -550,6 +564,13 @@ public enum Gmm {
       ParkerEtAl_2020.COEFFS_INTERFACE,
       ParkerEtAl_2020.CONSTRAINTS_INTERFACE),
 
+  /** @see ParkerEtAl_2020 */
+  PSBAH_20_GLOBAL_INTERFACE_NO_EPI(
+      ParkerEtAl_2020.GlobalInterfaceNoEpi.class,
+      ParkerEtAl_2020.GlobalInterfaceNoEpi.NAME,
+      ParkerEtAl_2020.COEFFS_INTERFACE,
+      ParkerEtAl_2020.CONSTRAINTS_INTERFACE),
+
   /** @see ParkerEtAl_2020 */
   PSBAH_20_GLOBAL_INTERFACE_AK_ADJUSTED(
       ParkerEtAl_2020.GlobalInterfaceAkAdjusted.class,
@@ -564,6 +585,13 @@ public enum Gmm {
       ParkerEtAl_2020.COEFFS_SLAB,
       ParkerEtAl_2020.CONSTRAINTS_SLAB),
 
+  /** @see ParkerEtAl_2020 */
+  PSBAH_20_GLOBAL_SLAB_NO_EPI(
+      ParkerEtAl_2020.GlobalSlabNoEpi.class,
+      ParkerEtAl_2020.GlobalSlabNoEpi.NAME,
+      ParkerEtAl_2020.COEFFS_SLAB,
+      ParkerEtAl_2020.CONSTRAINTS_SLAB),
+
   /** @see ParkerEtAl_2020 */
   PSBAH_20_CASCADIA_INTERFACE(
       ParkerEtAl_2020.CascadiaInterface.class,
@@ -620,6 +648,13 @@ public enum Gmm {
       KuehnEtAl_2020.COEFFS,
       KuehnEtAl_2020.CONSTRAINTS_INTERFACE),
 
+  /** @see KuehnEtAl_2020 */
+  KBCG_20_GLOBAL_INTERFACE_NO_EPI(
+      KuehnEtAl_2020.GlobalInterfaceNoEpi.class,
+      KuehnEtAl_2020.GlobalInterfaceNoEpi.NAME,
+      KuehnEtAl_2020.COEFFS,
+      KuehnEtAl_2020.CONSTRAINTS_INTERFACE),
+
   /** @see KuehnEtAl_2020 */
   KBCG_20_GLOBAL_INTERFACE_AK_ADJUSTED(
       KuehnEtAl_2020.GlobalInterfaceAkAdjusted.class,
@@ -634,6 +669,13 @@ public enum Gmm {
       KuehnEtAl_2020.COEFFS,
       KuehnEtAl_2020.CONSTRAINTS_SLAB),
 
+  /** @see KuehnEtAl_2020 */
+  KBCG_20_GLOBAL_SLAB_NO_EPI(
+      KuehnEtAl_2020.GlobalSlabNoEpi.class,
+      KuehnEtAl_2020.GlobalSlabNoEpi.NAME,
+      KuehnEtAl_2020.COEFFS,
+      KuehnEtAl_2020.CONSTRAINTS_SLAB),
+
   /** @see KuehnEtAl_2020 */
   KBCG_20_CASCADIA_INTERFACE(
       KuehnEtAl_2020.CascadiaInterface.class,
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/KuehnEtAl_2020.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/KuehnEtAl_2020.java
index 7ec3bea9b71be442425b59bc8bea7ccaf837abf8..ebcc629d87cd10fc35fab899c18488a698c55382 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/KuehnEtAl_2020.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/KuehnEtAl_2020.java
@@ -570,7 +570,7 @@ public abstract class KuehnEtAl_2020 implements GroundMotionModel {
     }
   }
 
-  static final class GlobalInterface extends Global {
+  static class GlobalInterface extends Global {
     static final String NAME = Global.NAME + " : " + INTERFACE;
 
     GlobalInterface(Imt imt) {
@@ -578,6 +578,22 @@ public abstract class KuehnEtAl_2020 implements GroundMotionModel {
     }
   }
 
+  static final class GlobalInterfaceNoEpi extends GlobalInterface {
+    static final String NAME = GlobalInterface.NAME + " (no epi)";
+
+    GlobalInterfaceNoEpi(Imt imt) {
+      super(imt);
+    }
+
+    @Override
+    public final LogicTree<GroundMotion> calc(GmmInput in) {
+      // TODO epistemic uncertainty should be configurable
+      // or controlled in the main calc method
+      GroundMotion gm = super.calc(in).get(1).value();
+      return GroundMotions.createTree(gm.mean(), gm.sigma());
+    }
+  }
+
   static final class GlobalInterfaceAkAdjusted extends Global {
     static final String NAME = GlobalInterface.NAME + " (Alaska Adjusted)";
 
@@ -604,6 +620,22 @@ public abstract class KuehnEtAl_2020 implements GroundMotionModel {
     }
   }
 
+  static final class GlobalSlabNoEpi extends GlobalSlab {
+    static final String NAME = GlobalSlab.NAME + " (no epi)";
+
+    GlobalSlabNoEpi(Imt imt) {
+      super(imt);
+    }
+
+    @Override
+    public final LogicTree<GroundMotion> calc(GmmInput in) {
+      // TODO epistemic uncertainty should be configurable
+      // or controlled in the main calc method
+      GroundMotion gm = super.calc(in).get(1).value();
+      return GroundMotions.createTree(gm.mean(), gm.sigma());
+    }
+  }
+
   /*
    * 2023-02-23 @pmpowers: Keuhn's Seattle basin model and the M9 adjustments
    * are both dependent on a site being inside the Seattle basin polygon. The M9
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/ParkerEtAl_2020.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/ParkerEtAl_2020.java
index 73238b62409cfc060874bc87debfd59bd276e846..2505d3c20bd9a468eb2ab483051323e61361236e 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/ParkerEtAl_2020.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/ParkerEtAl_2020.java
@@ -296,7 +296,7 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
   }
 
   @Override
-  public final LogicTree<GroundMotion> calc(GmmInput in) {
+  public LogicTree<GroundMotion> calc(GmmInput in) {
 
     double pgaRef = exp(calcMean(
         coeffsPGA, slab(), akBiasAdjusted(), in));
@@ -554,7 +554,7 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
     }
   }
 
-  static final class GlobalInterface extends Global {
+  static class GlobalInterface extends Global {
     static final String NAME = Global.NAME + " : " + INTERFACE;
 
     GlobalInterface(Imt imt) {
@@ -562,6 +562,22 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
     }
   }
 
+  static final class GlobalInterfaceNoEpi extends GlobalInterface {
+    static final String NAME = GlobalInterface.NAME + " (no epi)";
+
+    GlobalInterfaceNoEpi(Imt imt) {
+      super(imt);
+    }
+
+    @Override
+    public final LogicTree<GroundMotion> calc(GmmInput in) {
+      // TODO epistemic uncertainty should be configurable
+      // or controlled in the main calc method
+      GroundMotion gm = super.calc(in).get(1).value();
+      return GroundMotions.createTree(gm.mean(), gm.sigma());
+    }
+  }
+
   static final class GlobalInterfaceAkAdjusted extends Global {
     static final String NAME = GlobalInterface.NAME + " (Alaska Adjusted)";
 
@@ -575,7 +591,7 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
     }
   }
 
-  static final class GlobalSlab extends Global {
+  static class GlobalSlab extends Global {
     static final String NAME = Global.NAME + " : " + SLAB;
 
     GlobalSlab(Imt imt) {
@@ -588,6 +604,22 @@ public abstract class ParkerEtAl_2020 implements GroundMotionModel {
     }
   }
 
+  static final class GlobalSlabNoEpi extends GlobalSlab {
+    static final String NAME = GlobalSlab.NAME + " (no epi)";
+
+    GlobalSlabNoEpi(Imt imt) {
+      super(imt);
+    }
+
+    @Override
+    public final LogicTree<GroundMotion> calc(GmmInput in) {
+      // TODO epistemic uncertainty should be configurable
+      // or controlled in the main calc method
+      GroundMotion gm = super.calc(in).get(1).value();
+      return GroundMotions.createTree(gm.mean(), gm.sigma());
+    }
+  }
+
   static class CascadiaInterface extends Cascadia {
     static final String NAME = Cascadia.NAME + " : " + INTERFACE;