diff --git a/gstlal-inspiral/bin/gstlal_inspiral_mass_model b/gstlal-inspiral/bin/gstlal_inspiral_mass_model
index 849ed92f6f18d0630931417682384ca80236006b..76c4990050c2e3384baf13e1f908d96e95e28a6f 100755
--- a/gstlal-inspiral/bin/gstlal_inspiral_mass_model
+++ b/gstlal-inspiral/bin/gstlal_inspiral_mass_model
@@ -74,7 +74,7 @@ mchirps = {}
 ligo_min = 3
 ligo_max = 40
 ligo_peak = 40
-ligo_alpha = -1
+ligo_alpha = -1.5
 ligonorm = schechter_norm(ligo_min, ligo_max, ligo_peak, ligo_alpha)
 
 bbh_min = 3
@@ -120,7 +120,7 @@ for row in sngl_inspiral_table:
 		#
 
 		# assume a 0.15 solar mass std deviation, this should capture both population distribution and snr effects
-		sigma = 0.15
+		sigma = 0.25
 		mean = 1.2
 		bnsprob = 1. / (2 * numpy.pi * sigma**2)**.5 * numpy.exp(-(mchirp - mean)**2 / 2. / sigma**2)
 
@@ -135,7 +135,7 @@ for row in sngl_inspiral_table:
 		#
 
 		# make intrinsic BNS rate 10 times higher (it is actually probably 20 times higher)
-		bns_rate = 10.
+		bns_rate = 7.
 		bbh_rate = 1.
 		# FIXME if the noise is ever normalized over mass then we would need the following, but it isn't
 		#prob[row.template_id] = (bns_rate * bnsprob + bbh_rate * bbhprob) / massBA[(mchirp,)] / (bns_rate + bbh_rate)
@@ -146,9 +146,9 @@ for row in sngl_inspiral_table:
 ids = sorted(prob.keys())
 norm = numpy.sum(prob.values())
 chirpmasses = numpy.array([mchirps[tid] for tid in ids])
-coefficients = numpy.zeros((1, 1, max(ids)+1), dtype=float)
-for tid in ids:
-	coefficients[0,0,tid] = numpy.log(prob[tid]) - numpy.log(norm)
+coefficients = numpy.zeros((1, 1, len(ids)+1), dtype=float)
+for idx, tid in enumerate(ids):
+	coefficients[0,0,idx] = numpy.log(prob[tid]) - numpy.log(norm)
 
 #import matplotlib
 #matplotlib.use('agg')