diff --git a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingReaderHazardCurves.java b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingReaderHazardCurves.java
index 91a58a36bb94092b8e75ad3125743131a643b77f..839fad70d0b95ecba542b2aeb8bce9cc179718f6 100644
--- a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingReaderHazardCurves.java
+++ b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingReaderHazardCurves.java
@@ -2,6 +2,7 @@ package gov.usgs.earthquake.nshmp.netcdf.reader;
 
 import java.io.IOException;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import gov.usgs.earthquake.nshmp.data.XySequence;
 import gov.usgs.earthquake.nshmp.geo.Location;
@@ -148,7 +149,13 @@ public class BoundingReaderHazardCurves extends BoundingReader<StaticDataHazardC
               netcdfData.imls().get(imt),
               (double[]) hazards.section(origin, shape).reduce().get1DJavaArray(DataType.DOUBLE));
 
-          imtHazardMap.put(imt, xySequence);
+          var points = xySequence.stream().filter(xy -> !Double.isNaN(xy.y()))
+              .collect(Collectors.toList());
+
+          var xs = points.stream().map(xy -> xy.x()).collect(Collectors.toList());
+          var ys = points.stream().map(xy -> xy.y()).collect(Collectors.toList());
+
+          imtHazardMap.put(imt, XySequence.create(xs, ys));
         } catch (InvalidRangeException e) {
           throw new RuntimeException(e.getMessage());
         }