diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmService.java
index f9c9790405b19a92cb08ec184c3b08692a64b261..e1b737a2ef2dda0c087fe57fa7c283036ec77e23 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmService.java
@@ -59,11 +59,15 @@ class GmmService {
     XyDataGroup means;
     XyDataGroup sigmas;
 
-    private Response(Id service) {
+    private Response(Id service, Optional<Imt> imt) {
+      String yLabelMedian = imt.isPresent()
+          ? String.format("%s (%s)", service.yLabelMedian, imt.get().units())
+          : service.yLabelMedian;
+
       means = XyDataGroup.create(
           service.groupNameMean,
           service.xLabel,
-          service.yLabelMedian);
+          yLabelMedian);
 
       sigmas = XyDataGroup.create(
           service.groupNameSigma,
@@ -73,9 +77,10 @@ class GmmService {
 
     static Response create(
         Id service,
-        Map<Gmm, GmmData> result) {
+        Map<Gmm, GmmData> result,
+        Optional<Imt> imt) {
 
-      Response response = new Response(service);
+      Response response = new Response(service, imt);
 
       for (Entry<Gmm, GmmData> entry : result.entrySet()) {
         Gmm gmm = entry.getKey();
@@ -90,7 +95,6 @@ class GmmService {
         // If we have a GMM with a single GroundMotion branch,
         // then the DataGroup branch list is empty
         if (!data.tree.isEmpty()) {
-
           boolean hasSigmaBranches = data.tree.get(0).id.contains(" : ");
 
           μEpi = data.tree.stream()
@@ -109,6 +113,7 @@ class GmmService {
         response.means.add(gmm.name(), gmm.toString(), μTotal, μEpi);
         response.sigmas.add(gmm.name(), gmm.toString(), σTotal, sigmaEpi);
       }
+
       return response;
     }
   }
@@ -117,7 +122,7 @@ class GmmService {
 
     static HttpResponse<String> process(Request request) {
       Map<Gmm, GmmData> spectra = GmmCalc.spectra(request, false);
-      Response response = Response.create(request.serviceId, spectra);
+      Response response = Response.create(request.serviceId, spectra, Optional.empty());
       var body = ResponseBody.success()
           .name(request.serviceId.name)
           .url(request.http.getUri().getPath())
@@ -142,7 +147,7 @@ class GmmService {
       double[] rArray = distanceArray(request);
 
       Map<Gmm, GmmData> gmvr = GmmCalc.distance(request, rArray);
-      Response response = Response.create(request.serviceId, gmvr);
+      Response response = Response.create(request.serviceId, gmvr, Optional.of(request.imt));
       var body = ResponseBody.success()
           .name(request.serviceId.name)
           .url(request.http.getUri().getPath())
@@ -199,7 +204,7 @@ class GmmService {
           request.mMin, request.mMax, request.step);
 
       Map<Gmm, GmmData> gmvm = GmmCalc.magnitude(request, mArray, request.distance);
-      Response response = Response.create(request.serviceId, gmvm);
+      Response response = Response.create(request.serviceId, gmvm, Optional.of(request.imt));
       var body = ResponseBody.success()
           .name(request.serviceId.name)
           .url(request.http.getUri().getPath())
@@ -293,7 +298,7 @@ class GmmService {
         "Means",
         "Sigmas",
         "Distance (km)",
-        "Median ground motion (g)",
+        "Median ground motion",
         "Standard deviation"),
 
     HW_FW(
@@ -303,7 +308,7 @@ class GmmService {
         "Means",
         "Sigmas",
         "Distance (km)",
-        "Median ground motion (g)",
+        "Median ground motion",
         "Standard deviation"),
 
     MAGNITUDE(
@@ -313,7 +318,7 @@ class GmmService {
         "Means",
         "Sigmas",
         "Magnitude",
-        "Median ground motion (g)",
+        "Median ground motion",
         "Standard deviation"),
 
     SPECTRA(