diff --git a/gstlal-inspiral/bin/gstlal_inspiral_plot_sensitivity b/gstlal-inspiral/bin/gstlal_inspiral_plot_sensitivity
index c1f4584b3321130699f884ee3d0034aa4fea2add..d5371712b741f74116969c6de3ae2562359f92e4 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_plot_sensitivity
+++ b/gstlal-inspiral/bin/gstlal_inspiral_plot_sensitivity
@@ -452,7 +452,8 @@ for bin_type in opts.bin_types:
         #
         # compute volume by far and snr for all mass bins
         #
-        vols_far, errs_far, vols_snr, errs_snr = [], [], [], []
+        vols_lo_far, vols_far, vols_hi_far = [], [], []
+        vols_lo_snr, vols_snr, vols_hi_snr = [], [], []
         for k, far, snr in zip(range(opts.xaxis_points), fars, snrs):
 
             #
@@ -464,41 +465,63 @@ for bin_type in opts.bin_types:
             #
             # compute volume vs far
             #
-            vol, err = imr_utils.compute_search_volume_in_bins(found_by_far, UL.total_injections[instr], bins, s2b)
+            eff_lo, eff, eff_hi = imr_utils.compute_search_efficiency_in_bins(found_by_far, UL.total_injections[instr], bins, s2b)
+            vol_lo = imr_utils.compute_search_volume(eff_lo)
+            vol_lo.array *= UL.livetime[instr] #preferred unit is Mpc^3*yr
+            vols_lo_far.append(vol_lo)
+
+            vol = imr_utils.compute_search_volume(eff)
             vol.array *= UL.livetime[instr] #preferred unit is Mpc^3*yr
-            err.array *= UL.livetime[instr] #preferred unit is Mpc^3*yr
             vols_far.append(vol)
-            errs_far.append(err)
+
+            vol_hi = imr_utils.compute_search_volume(eff_hi)
+            vol_hi.array *= UL.livetime[instr] #preferred unit is Mpc^3*yr
+            vols_hi_far.append(vol_hi)
 
             #
             # write volume and volume errors array to xml
             #
+            xml = ligolw.LIGO_LW({u"Name": u"volume_lo_by_far_%d:%s" % (k, bin_type,)})
+            xml.appendChild(ligolw_array.from_array(u"array", vol_lo.array))
+            child.appendChild(xml)
+
             xml = ligolw.LIGO_LW({u"Name": u"volume_by_far_%d:%s" % (k, bin_type,)})
             xml.appendChild(ligolw_array.from_array(u"array", vol.array))
             child.appendChild(xml)
 
-            xml = ligolw.LIGO_LW({u"Name": u"volume_error_by_far_%d:%s" % (k, bin_type,)})
-            xml.appendChild(ligolw_array.from_array(u"array", err.array))
+            xml = ligolw.LIGO_LW({u"Name": u"volume_hi_by_far_%d:%s" % (k, bin_type,)})
+            xml.appendChild(ligolw_array.from_array(u"array", vol_hi.array))
             child.appendChild(xml)
 
             #
             # compute volume vs snr
             #
-            vol, err = imr_utils.compute_search_volume_in_bins(found_by_snr, UL.total_injections[instr], bins, s2b)
+            eff_lo, eff, eff_hi = imr_utils.compute_search_efficiency_in_bins(found_by_snr, UL.total_injections[instr], bins, s2b)
+            vol_lo = imr_utils.compute_search_volume(eff_lo)
+            vol_lo.array *= UL.livetime[instr] #preferred unit is Mpc^3*yr
+            vols_lo_snr.append(vol_lo)
+
+            vol = imr_utils.compute_search_volume(eff)
             vol.array *= UL.livetime[instr] #preferred unit is Mpc^3*yr
-            err.array *= UL.livetime[instr] #preferred unit is Mpc^3*yr
             vols_snr.append(vol)
-            errs_snr.append(err)
+
+            vol_hi = imr_utils.compute_search_volume(eff_hi)
+            vol_hi.array *= UL.livetime[instr] #preferred unit is Mpc^3*yr
+            vols_hi_snr.append(vol_hi)
 
             #
             # write volume and volume errors array to xml
             #
+            xml = ligolw.LIGO_LW({u"Name": u"volume_lo_by_snr_%d:%s" % (k, bin_type,)})
+            xml.appendChild(ligolw_array.from_array(u"array", vol_lo.array))
+            child.appendChild(xml)
+
             xml = ligolw.LIGO_LW({u"Name": u"volume_by_snr_%d:%s" % (k, bin_type,)})
             xml.appendChild(ligolw_array.from_array(u"array", vol.array))
             child.appendChild(xml)
 
-            xml = ligolw.LIGO_LW({u"Name": u"volume_error_by_snr_%d:%s" % (k, bin_type,)})
-            xml.appendChild(ligolw_array.from_array(u"array", err.array))
+            xml = ligolw.LIGO_LW({u"Name": u"volume_hi_by_snr_%d:%s" % (k, bin_type,)})
+            xml.appendChild(ligolw_array.from_array(u"array", vol_hi.array))
             child.appendChild(xml)
 
         #
@@ -541,16 +564,17 @@ for bin_type in opts.bin_types:
 
             # sensitivity vs far
             center = numpy.array([v[mmid] for v in vols_far])
-            err = numpy.array([e[mmid] for e in errs_far])
-            line, = ax_far.plot( fars, center, label=label )
-            ax_far.fill_between( fars, center - err, center + err, alpha=0.5, color=line.get_color() )
+            lo = numpy.array([v[mmid] for v in vols_lo_far])
+            hi = numpy.array([v[mmid] for v in vols_hi_far])
+            line, = ax_far.plot( fars, center, label=label, linewidth=2 )
+            ax_far.fill_between( fars, lo, hi, alpha=0.5, color=line.get_color())
 
             # sensitivity vs snr
             center = numpy.array([v[mmid] for v in vols_snr])
-            err = numpy.array([e[mmid] for e in errs_snr])
-            line, = ax_snr.plot( snrs, center, label=label )
-            ax_snr.fill_between( snrs, center - err, center + err, alpha=0.5, color=line.get_color() )
-
+            lo = numpy.array([v[mmid] for v in vols_lo_snr])
+            hi = numpy.array([v[mmid] for v in vols_hi_snr])
+            line, = ax_snr.plot( snrs, center, label=label, linewidth=2 )
+            ax_snr.fill_between( snrs, lo, hi, alpha=0.5, color=line.get_color())
 
         # sensitivity vs far
         tx = ax_far.twinx() # map volume to distance