diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/Deserialize.java b/src/main/java/gov/usgs/earthquake/nshmp/model/Deserialize.java
index 2cd5364c8520f310cd06581820030850d9577859..ad3b3e88ecc72be5244f4e72bd7cdac258f1113d 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/model/Deserialize.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/model/Deserialize.java
@@ -320,7 +320,10 @@ class Deserialize {
     List<SlabRuptureSet> rsList = new ArrayList<>();
     for (JsonElement ruptureSet : ruptureSets) {
       JsonObject obj = ruptureSet.getAsJsonObject();
-      data.gridRateFile(Path.of(obj.get(SPATIAL_PDF).getAsString()));
+      boolean spatialPdf = (obj.get(SPATIAL_PDF) != null);
+      data.spatialPdf(spatialPdf);
+      String gridFile = spatialPdf ? SPATIAL_PDF : GRID_MFDS;
+      data.gridRateFile(Path.of(obj.get(gridFile).getAsString()));
       SlabRuptureSet srs = GridLoader.createSlabRuptureSet(
           obj.get(ID).getAsInt(),
           obj.get(NAME).getAsString(),