diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmCalc.java
index d3363524df9ab03544f70a92af12875cf5de67c7..31c51dbef9c5c2c6ff666055be865bc89ba6c113 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmCalc.java
@@ -43,11 +43,12 @@ class GmmCalc {
 
   /* Compute ground motion response spectra. */
   static Map<Gmm, GmmSpectraData> spectra(Request request) {
-    Set<Imt> saImts = Gmm.responseSpectrumImts(request.gmms);
 
     Map<Gmm, GmmSpectraData> gmmSpectra = new EnumMap<>(Gmm.class);
 
     for (Gmm gmm : request.gmms) {
+      Set<Imt> saImts = gmm.responseSpectrumImts();
+
       List<LogicTree<GroundMotion>> saImtTrees = saImts.stream()
           .map(imt -> gmm.instance(imt).calc(request.input))
           .collect(Collectors.toList());