diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java
index 227d1796a70e4e73523fae99695f41e89a990230..3af0e75d83302c1355680dd127c1c0d637eb2dd8 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java
@@ -130,8 +130,8 @@ public class DisaggCalc {
       fh.setFormatter(new Logging.ConsoleFormatter());
       log.getParent().addHandler(fh);
 
-      log.info(PROGRAM + " version: " + HazardCalc.VERSION);
       Path modelPath = Paths.get(args[0]);
+      log.info(PROGRAM + " version: " + HazardCalc.versions(modelPath));
       HazardModel model = HazardModel.load(modelPath);
 
       log.info("");
@@ -535,7 +535,7 @@ public class DisaggCalc {
 
   private static final String USAGE = new StringBuilder()
       .append(NEWLINE)
-      .append(PROGRAM).append(" version:").append(HazardCalc.VERSION)
+      .append(PROGRAM).append(" version:").append(HazardCalc.versions(null))
       .append(NEWLINE)
       .append("Usage:").append(NEWLINE)
       .append("  ").append(USAGE_COMMAND).append(NEWLINE)
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
index 9c14fc32ec22e4e620fd8d3a9569840d6b5d0b97..2e1b268fe0229085290369c8c101762ea105db5f 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
@@ -96,8 +96,8 @@ public class HazardCalc {
       fh.setFormatter(new Logging.ConsoleFormatter());
       log.getParent().addHandler(fh);
 
-      log.info(PROGRAM + " version: " + VERSION);
       Path modelPath = Paths.get(args[0]);
+      log.info(PROGRAM + " version: " + versions(modelPath));
       HazardModel model = HazardModel.load(modelPath);
 
       /* Calculation configuration, possibly user supplied. */
@@ -254,11 +254,9 @@ public class HazardCalc {
     return Optional.of(sb.toString());
   }
 
-  public static final StringBuilder VERSION = versions();
-
-  private static StringBuilder versions() {
+  static StringBuilder versions(Path modelPath) {
     StringBuilder sb = new StringBuilder().append(NEWLINE);
-    for (VersionInfo component : HazVersion.appVersions()) {
+    for (VersionInfo component : HazVersion.appVersions(modelPath)) {
       sb.append("\t").append(component.projectName)
           .append(": ").append(component.version)
           .append(NEWLINE);
@@ -276,7 +274,7 @@ public class HazardCalc {
 
   private static final String USAGE = new StringBuilder()
       .append(NEWLINE)
-      .append(PROGRAM).append(" version:").append(VERSION)
+      .append(PROGRAM).append(" version:").append(versions(null))
       .append(NEWLINE)
       .append("Usage:").append(NEWLINE)
       .append("  ").append(USAGE_COMMAND).append(NEWLINE)
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
index 6c2f651eab405400afb16d2cfb3489b5b2e03873..2251645d2f22f15fe6bb01cb1ebe8d0a564600fb 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
@@ -96,8 +96,8 @@ public class RateCalc {
       fh.setFormatter(new Logging.ConsoleFormatter());
       log.getParent().addHandler(fh);
 
-      log.info(PROGRAM + " version: " + HazardCalc.VERSION);
       Path modelPath = Paths.get(args[0]);
+      log.info(PROGRAM + " version: " + HazardCalc.versions(modelPath));
       HazardModel model = HazardModel.load(modelPath);
 
       CalcConfig config = model.config();
@@ -222,7 +222,7 @@ public class RateCalc {
 
   private static final String USAGE = new StringBuilder()
       .append(NEWLINE)
-      .append(PROGRAM).append(" version:").append(HazardCalc.VERSION)
+      .append(PROGRAM).append(" version:").append(HazardCalc.versions(null))
       .append(NEWLINE)
       .append("Usage:").append(NEWLINE)
       .append("  ").append(USAGE_COMMAND).append(NEWLINE)