diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/SiteData.java b/src/main/java/gov/usgs/earthquake/nshmp/model/SiteData.java
index 54356f7569b304769397c217fef4fe976474e06c..ebd29d447fd6d459dab46c9734bb728f4c38aaca 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/model/SiteData.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/model/SiteData.java
@@ -87,7 +87,8 @@ public class SiteData {
     }
     for (Margin margin : margins) {
       Location snapped = snapToGrid(location, margin.spacing, margin.scale);
-      if (margin.contains(snapped)) {
+      // check map because margin data is sparse within polygon
+      if (margin.contains(snapped) && margin.data.containsKey(snapped)) {
         builder.marginValues(margin.data.get(snapped));
         break;
       }