diff --git a/gradle.properties b/gradle.properties
index 4b1f2b84dfc3595e3cf7ac7babe635ee7a8353f2..cb06f8f26b77edd164e23c43d752185c93c3bfb1 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -10,7 +10,7 @@ micronautRxVersion = 2.1.1
 micronautPluginVersion = 3.1.1
 nodePluginVersion = 3.0.1
 nodeVersion = 16.3.0
-nshmpLibVersion = 0.9.0
+nshmpLibVersion = 0.9.1
 nshmpWsUtilsVersion = 0.1.7
 shadowVersion = 7.1.2
 spotbugsVersion = 4.7.0
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DisaggEpsilon.java b/src/main/java/gov/usgs/earthquake/nshmp/DisaggEpsilon.java
index 066a6fca23ea3a14413174a8f95692d5c76f6067..21222248e2d506122f55ea948ed7f47ef8662a20 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/DisaggEpsilon.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/DisaggEpsilon.java
@@ -32,6 +32,7 @@ import com.google.gson.GsonBuilder;
 
 import gov.usgs.earthquake.nshmp.calc.CalcConfig;
 import gov.usgs.earthquake.nshmp.calc.Disaggregation;
+import gov.usgs.earthquake.nshmp.calc.Disaggs;
 import gov.usgs.earthquake.nshmp.calc.Hazard;
 import gov.usgs.earthquake.nshmp.calc.HazardCalcs;
 import gov.usgs.earthquake.nshmp.calc.Site;
@@ -251,6 +252,7 @@ public class DisaggEpsilon {
       Site site = sites.get(i);
       Map<Imt, Double> spectrum = rtrSpectra.get(i);
 
+      // use IMLs from site spectra
       Hazard hazard = HazardCalcs.hazard(model, config, site, exec);
       Disaggregation disagg = Disaggregation.atImls(hazard, spectrum, exec);
 
@@ -261,7 +263,9 @@ public class DisaggEpsilon {
             site,
             imt,
             spectrum.get(imt));
-        Response response = new Response(imtMetadata, disagg.toJsonCompact(imt));
+        Response response = new Response(
+            imtMetadata,
+            Disaggs.resultWithGmmAndType(disagg, imt));
         responses.add(response);
       }
       Result result = new Result(responses);