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 b2e632f0ad5ee8067348dbaa9f54b7506986c639..b5b025065a3c2b905a8465d196b490d0c7bfdebc 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
@@ -171,6 +171,16 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel {
   @Override
   public final LogicTree<GroundMotion> calc(GmmInput in) {
 
+    /*
+     * need flag from siteData; check gmmSiteModel array
+     *
+     * if siteData.gmmSiteModel.contains(SiteModel.M9)
+     *
+     * in siteData seattlePoly.contains and ad M9 to
+     *
+     * boolean m9amp = true;
+     */
+
     if (coeffs.imt == PGV) {
       GroundMotion pgv = UsgsPgvSupport.calcAB20Pgv(subtype, in);
       return GroundMotions.createTree(pgv.mean(), pgv.sigma());
@@ -524,6 +534,25 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel {
     }
   }
 
+  static final class SeattleAdjustedInterfaceBasin extends CascadiaAdjustedInterface {
+    static final String NAME = CascadiaAdjustedInterface.NAME + " (Seattle basin)";
+
+    SeattleAdjustedInterfaceBasin(Imt imt) {
+      super(imt, Gmm.AG_20_SEATTLE_ADJ_INTERFACE_BASIN);
+    }
+
+    @Override
+    boolean basin() {
+      return true;
+    }
+
+    @Override
+    boolean seattle() {
+      return true;
+    }
+
+  }
+
   static final class CascadiaAdjustedSlabBasin extends CascadiaAdjustedSlab {
     static final String NAME = CascadiaAdjustedSlab.NAME + " (basin)";
 
@@ -550,6 +579,24 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel {
     }
   }
 
+  static final class SeattleInterfaceBasin extends CascadiaInterface {
+    static final String NAME = CascadiaInterface.NAME + " (Seattle basin)";
+
+    SeattleInterfaceBasin(Imt imt) {
+      super(imt, Gmm.AG_20_SEATTLE_INTERFACE_BASIN);
+    }
+
+    @Override
+    boolean basin() {
+      return true;
+    }
+
+    @Override
+    boolean seattle() {
+      return true;
+    }
+  }
+
   static final class CascadiaSlabBasin extends CascadiaSlab {
     static final String NAME = CascadiaSlab.NAME + " (basin)";
 
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 b0e95f8cb658d8e62a85c05d70090db8e5a62854..5c8382f17c2222c1a9b8f42f227cf0edda4b787c 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
@@ -372,6 +372,13 @@ public enum Gmm {
       AbrahamsonGulerce_2020.COEFFS,
       AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE),
 
+  /** @see AbrahamsonGulerce_2020 */
+  AG_20_SEATTLE_INTERFACE_BASIN(
+      AbrahamsonGulerce_2020.SeattleInterfaceBasin.class,
+      AbrahamsonGulerce_2020.SeattleInterfaceBasin.NAME,
+      AbrahamsonGulerce_2020.COEFFS,
+      AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE),
+
   /** @see AbrahamsonGulerce_2020 */
   AG_20_CASCADIA_SLAB_BASIN(
       AbrahamsonGulerce_2020.CascadiaSlabBasin.class,
@@ -386,6 +393,13 @@ public enum Gmm {
       AbrahamsonGulerce_2020.COEFFS,
       AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE),
 
+  /** @see AbrahamsonGulerce_2020 */
+  AG_20_SEATTLE_ADJ_INTERFACE_BASIN(
+      AbrahamsonGulerce_2020.SeattleAdjustedInterfaceBasin.class,
+      AbrahamsonGulerce_2020.SeattleAdjustedInterfaceBasin.NAME,
+      AbrahamsonGulerce_2020.COEFFS,
+      AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE),
+
   /** @see AbrahamsonGulerce_2020 */
   AG_20_CASCADIA_ADJ_SLAB_BASIN(
       AbrahamsonGulerce_2020.CascadiaAdjustedSlabBasin.class,