diff --git a/src/main/java/gov/usgs/earthquake/nshmp/calc/CalcConfig.java b/src/main/java/gov/usgs/earthquake/nshmp/calc/CalcConfig.java
index 7ec631bf64bdfeee00cdf4741225004daa35db5a..48daad717e65b25cfe428244dd220b9da169ab51 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/calc/CalcConfig.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/calc/CalcConfig.java
@@ -233,7 +233,7 @@ public final class CalcConfig {
      * <p><b>Default:</b> 1.0<br><b>Range:</b> {@code 0.5} to {@code 1.0} (50%
      * to 100%, no scaling)
      */
-    public final double gmmSigmaScaling;
+    public final double gmmSigmaScale;
 
     /**
      * The value format for hazard curves.
@@ -256,7 +256,7 @@ public final class CalcConfig {
       this.sourceTypes = b.sourceTypes;
       this.vs30s = b.vs30s;
       this.gmmDampingRatio = b.gmmDampingRatio;
-      this.gmmSigmaScaling = b.gmmSigmaScaling;
+      this.gmmSigmaScale = b.gmmSigmaScale;
       this.valueFormat = b.valueFormat;
 
       this.customImls = b.customImls;
@@ -298,7 +298,7 @@ public final class CalcConfig {
       Set<SourceType> sourceTypes;
       Set<Double> vs30s;
       Double gmmDampingRatio;
-      Double gmmSigmaScaling;
+      Double gmmSigmaScale;
       ValueFormat valueFormat;
       Map<Imt, double[]> customImls;
       Map<Imt, XySequence> curveMap;
@@ -317,11 +317,11 @@ public final class CalcConfig {
             RezaeianDamping_2014.DAMPING_RATIO_RANGE,
             "gmmDampingRatio",
             gmmDampingRatio);
-        checkNotNull(gmmSigmaScaling);
+        checkNotNull(gmmSigmaScale);
         checkInRange(
             Range.closed(0.5, 1.0),
             "gmmSigmaScaling",
-            gmmSigmaScaling);
+            gmmSigmaScale);
         checkNotNull(valueFormat);
         checkNotNull(customImls);
         return new Hazard(this);
@@ -335,7 +335,7 @@ public final class CalcConfig {
         this.sourceTypes = that.sourceTypes;
         this.vs30s = that.vs30s;
         this.gmmDampingRatio = that.gmmDampingRatio;
-        this.gmmSigmaScaling = that.gmmSigmaScaling;
+        this.gmmSigmaScale = that.gmmSigmaScale;
         this.valueFormat = that.valueFormat;
         this.customImls = that.customImls;
       }
@@ -362,8 +362,8 @@ public final class CalcConfig {
         if (that.gmmDampingRatio != null) {
           this.gmmDampingRatio = that.gmmDampingRatio;
         }
-        if (that.gmmSigmaScaling != null) {
-          this.gmmSigmaScaling = that.gmmSigmaScaling;
+        if (that.gmmSigmaScale != null) {
+          this.gmmSigmaScale = that.gmmSigmaScale;
         }
         if (that.valueFormat != null) {
           this.valueFormat = that.valueFormat;
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/calc/ExceedanceModel.java b/src/main/java/gov/usgs/earthquake/nshmp/calc/ExceedanceModel.java
index 2921bcff9f52cb7847668267e18d405467f90679..63bf9a35ca5c900148bc3af1809bd3de1a6f5830 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/calc/ExceedanceModel.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/calc/ExceedanceModel.java
@@ -301,13 +301,14 @@ public enum ExceedanceModel {
   LogicTree<MutableXySequence> treeExceedance(
       LogicTree<GroundMotion> gmTree,
       double n,
+      double σScale,
       Imt imt,
       MutableXySequence sequence) {
 
     return Trees.transform(
         gmTree,
         gm -> exceedance(
-            gm.mean(), gm.sigma(), n, imt,
+            gm.mean(), gm.sigma() * σScale, n, imt,
             MutableXySequence.emptyCopyOf(sequence)),
         Optional.of(TREE_NAME));
   }
@@ -319,6 +320,7 @@ public enum ExceedanceModel {
   XySequence treeExceedanceCombined(
       LogicTree<GroundMotion> gmTree,
       double n,
+      double σScale,
       Imt imt,
       MutableXySequence sequence) {
 
@@ -327,7 +329,7 @@ public enum ExceedanceModel {
 
     for (Branch<GroundMotion> branch : gmTree) {
       GroundMotion gm = branch.value();
-      exceedance(gm.mean(), gm.sigma(), n, imt, branchCurve);
+      exceedance(gm.mean(), gm.sigma() * σScale, n, imt, branchCurve);
       sequence.add(branchCurve.multiply(branch.weight()));
     }
     return sequence;
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/calc/Transforms.java b/src/main/java/gov/usgs/earthquake/nshmp/calc/Transforms.java
index 8e9988b8cbce810964198a8578fccf6a7301ea13..27aecac80e599f4326bc67e274f6ae298c0ac375 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/calc/Transforms.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/calc/Transforms.java
@@ -157,11 +157,13 @@ final class Transforms {
     private final Map<Imt, XySequence> modelCurves;
     private final ExceedanceModel exceedanceModel;
     private final double truncationLevel;
+    private final double σScale;
 
     GroundMotionsToCurves(CalcConfig config) {
       this.modelCurves = config.hazard.logModelCurves();
       this.exceedanceModel = config.hazard.exceedanceModel;
       this.truncationLevel = config.hazard.truncationLevel;
+      this.σScale = config.hazard.gmmSigmaScale;
     }
 
     @Override
@@ -174,7 +176,6 @@ final class Transforms {
         Imt imt = imtEntry.getKey();
         XySequence modelCurve = modelCurves.get(imt);
         MutableXySequence gmmCurve = MutableXySequence.copyOf(modelCurve);
-
         MutableXySequence utilCurve = MutableXySequence.emptyCopyOf(modelCurve);
 
         /*
@@ -184,20 +185,16 @@ final class Transforms {
 
         for (Entry<Gmm, List<LogicTree<GroundMotion>>> gmmEntry : imtEntry.getValue().entrySet()) {
           gmmCurve.clear();
-          int i = 0;
-          for (LogicTree<GroundMotion> gmTree : gmmEntry.getValue()) {
-
-            double rate = gms.inputs.get(i++).rate;
-
+          List<LogicTree<GroundMotion>> gmTrees = gmmEntry.getValue();
+          for (int i = 0; i < gmTrees.size(); i++) {
             exceedanceModel.treeExceedanceCombined(
-                gmTree,
+                gmTrees.get(i),
                 truncationLevel,
+                σScale,
                 imt,
                 utilCurve);
-
-            utilCurve.multiply(rate);
+            utilCurve.multiply(gms.inputs.get(i).rate);
             gmmCurve.add(utilCurve);
-
           }
           curveBuilder.addCurve(imt, gmmEntry.getKey(), gmmCurve);
         }
@@ -480,11 +477,13 @@ final class Transforms {
     private final Map<Imt, XySequence> logModelCurves;
     private final ExceedanceModel exceedanceModel;
     private final double truncationLevel;
+    private final double σScale;
 
     ClusterGroundMotionsToCurves(CalcConfig config) {
       this.logModelCurves = config.hazard.logModelCurves();
       this.exceedanceModel = config.hazard.exceedanceModel;
       this.truncationLevel = config.hazard.truncationLevel;
+      this.σScale = config.hazard.gmmSigmaScale;
     }
 
     @Override
@@ -531,6 +530,7 @@ final class Transforms {
               LogicTree<MutableXySequence> magTreeCurves = exceedanceModel.treeExceedance(
                   gmTree,
                   truncationLevel,
+                  σScale,
                   imt,
                   utilCurve);
 
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/Distance.java b/src/main/java/gov/usgs/earthquake/nshmp/model/Distance.java
index 21065fbde3e4ceaf78f3115ea3e40f9387fe770b..8e85bb709db74afe4d0e9c09a30a68c5b532c30e 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/model/Distance.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/model/Distance.java
@@ -67,19 +67,10 @@ public final class Distance {
 
     double horzDist, vertDist, rupDist;
 
-    // flag to project to seisDepth if only one row and depth is below
-    // seisDepth
-    // boolean projectToDepth = false;
-    // if (surface.getNumRows() == 1 && surface.getLocation(0,0).depth() <
-    // SEIS_DEPTH)
-    // projectToDepth = true;
-
     // get locations to iterate over depending on dip
     Iterator<Location> it;
     if (surface.dip() > 89) {
       it = surface.getColumnIterator(0);
-      // if (surface.getLocation(0,0).depth() < SEIS_DEPTH)
-      // projectToDepth = true;
     } else {
       it = surface.iterator();
     }
diff --git a/src/main/resources/calc/calc-config-defaults.json b/src/main/resources/calc/calc-config-defaults.json
index 2de807379fd6a2b2c1b9d511d23ac232028539a3..d23efcf322afe43f6f7d847e861926c1c83107e3 100644
--- a/src/main/resources/calc/calc-config-defaults.json
+++ b/src/main/resources/calc/calc-config-defaults.json
@@ -13,7 +13,7 @@
     "sourceTypes": [],
     "vs30s": [],
     "gmmDampingRatio": 0.05,
-    "gmmSigmaScaling": 1.0,
+    "gmmSigmaScale": 1.0,
     "valueFormat": "ANNUAL_RATE",
     "customImls": {}
   },
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/calc/CalcConfigTests.java b/src/test/java/gov/usgs/earthquake/nshmp/calc/CalcConfigTests.java
index 91bafd901a32df139f352a673a5dd73cfb67eb7d..eb47edc7335898e77b1fdfaf7a0b4878c44f5aa2 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/calc/CalcConfigTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/calc/CalcConfigTests.java
@@ -249,7 +249,7 @@ class CalcConfigTests {
     assertEquals(EnumSet.of(FAULT, ZONE, SLAB), def.sourceTypes);
     assertEquals(Set.of(260.0, 760.0), def.vs30s);
     assertEquals(0.03, def.gmmDampingRatio);
-    assertEquals(0.85, def.gmmSigmaScaling);
+    assertEquals(0.85, def.gmmSigmaScale);
     assertEquals(ValueFormat.POISSON_PROBABILITY, def.valueFormat);
 
     assertArrayEquals(
@@ -264,7 +264,7 @@ class CalcConfigTests {
     assertEquals(EnumSet.noneOf(SourceType.class), def.tectonicSettings);
     assertEquals(Set.of(), def.vs30s);
     assertEquals(0.05, def.gmmDampingRatio);
-    assertEquals(1.0, def.gmmSigmaScaling);
+    assertEquals(1.0, def.gmmSigmaScale);
     assertEquals(ValueFormat.ANNUAL_RATE, def.valueFormat);
   }
 
diff --git a/src/test/resources/calc/calc-config-extends.json b/src/test/resources/calc/calc-config-extends.json
index 63a1758e405c11b2bd3c2997d1815c4c60bcea57..0c6c907131bbcb38d6ca73b122534d7ba19bc7d7 100644
--- a/src/test/resources/calc/calc-config-extends.json
+++ b/src/test/resources/calc/calc-config-extends.json
@@ -9,7 +9,7 @@
     "sourceTypes": [ "FAULT", "ZONE", "SLAB" ],
     "vs30s": [ 260, 760 ],
     "gmmDampingRatio": 0.03,
-    "gmmSigmaScaling": 0.85,
+    "gmmSigmaScale": 0.85,
     "valueFormat": "POISSON_PROBABILITY",
     "customImls": {
       "PGA": [0.0025, 0.0075, 0.0169, 0.0380, 0.0854, 0.192, 0.432, 0.973, 2.19, 4.92]