diff --git a/gstlal-inspiral/python/stats/inspiral_lr.py b/gstlal-inspiral/python/stats/inspiral_lr.py
index ac9424e4e32f870c6be9fbbb4fdcbc797fb90780..d7d478d130c97ef0c56dbc3f4bea118d1b879ac2 100644
--- a/gstlal-inspiral/python/stats/inspiral_lr.py
+++ b/gstlal-inspiral/python/stats/inspiral_lr.py
@@ -28,6 +28,7 @@
 
 import math
 import numpy
+import os
 import random
 from scipy import interpolate
 from scipy import stats
@@ -35,8 +36,11 @@ import sys
 import warnings
 
 
+from glue.ligolw import ligolw
 from glue.ligolw import lsctables
+from glue.ligolw import array as ligolw_array
 from glue.ligolw import param as ligolw_param
+from glue.ligolw import utils as ligolw_utils
 from glue import segments
 from gstlal.stats import horizonhistory
 from gstlal.stats import inspiral_extrinsics
@@ -47,6 +51,13 @@ from lalburst import snglcoinc
 import lalsimulation
 
 
+# FIXME:  caution, this information might get organized differently later.
+# for now we just need to figure out where the gstlal-inspiral directory in
+# share/ is.  don't write anything that assumes that this module will
+# continue to define any of these symbols
+from gstlal import paths as gstlal_config_paths
+
+
 __all__ = [
 	"LnSignalDensity",
 	"LnNoiseDensity"
@@ -846,15 +857,23 @@ class DatalessLnNoiseDensity(LnNoiseDensity):
 	distance, and assess candidates based only on SNR and \chi^2
 	distributions.
 	"""
+
+	DEFAULT_FILENAME = os.path.join(gstlal_config_paths["pkgdatadir"], "inspiral_datalesslndensity.xml.gz")
+
+	@ligolw_array.use_in
+	@ligolw_param.use_in
+	class LIGOLWContentHandler(ligolw.LIGOLWContentHandler):
+		pass
+
 	def __init__(self, *args, **kwargs):
 		super(DatalessLnNoiseDensity, self).__init__(*args, **kwargs)
-		# this a guess at a mass dependent snr chisq prior.  10
-		# *million* events gets the density estimation kernel to be
-		# a sensible size.
-		# FIXME:  initialize from template information instead of
-		# guessing mchirp.
-		mchirp = 0.8
-		self.add_noise_model(number_of_events = 10000000, prefactors_range = ((1. / mchirp)**.33, 25.), df = 40, inv_snr_pow = 3.)
+
+		# install SNR, chi^2 PDF (one for all instruments)
+		# FIXME:  make mass dependent
+		self.densities = {
+			"snr_chi": rate.BinnedLnPDF.from_xml(ligolw_utils.load_filename(self.DEFAULT_FILENAME, contenthandler = self.LIGOLWContentHandler), u"datalesslnnoisedensity")
+		}
+
 
 	def __call__(self, segments, snrs, phase, dt, template_id, **kwargs):
 		# assume all instruments are on, 1 trigger per second per
@@ -876,8 +895,8 @@ class DatalessLnNoiseDensity(LnNoiseDensity):
 		lnP += self.coinc_rates.lnP_instruments(**triggers_per_second_per_template)[frozenset(snrs)]
 
 		# evaluate the SNR, \chi^2 factors
-		interps = self.interps
-		return lnP + sum(interps[name](*value) for name, value in kwargs.items() if name in interps)
+		interp = self.interps["snr_chi"]
+		return lnP + sum(interp(*value) for name, value in kwargs.items() if name.endswith("_snr_chi"))
 
 	def random_params(self):
 		# won't work
diff --git a/gstlal-inspiral/share/Makefile.am b/gstlal-inspiral/share/Makefile.am
index b0c61729d497e3a6684e8ea7e9b13dee3d88531d..0e1984a7a4638dc868253619aec5f18bce35852f 100644
--- a/gstlal-inspiral/share/Makefile.am
+++ b/gstlal-inspiral/share/Makefile.am
@@ -4,6 +4,7 @@ dist_pkgdata_DATA = \
 	H1L1V1_p_of_instruments_given_H_d.h5 \
 	H1V1_p_of_instruments_given_H_d.h5 \
 	inj_simplify_and_cluster.sql \
+	inspiral_datalesslndensity.xml.gz \
 	inspiral_dtdphi_pdf.h5 \
 	inspiral_snr_pdf.xml.gz \
 	L1V1_p_of_instruments_given_H_d.h5 \
diff --git a/gstlal-inspiral/share/inspiral_datalesslndensity.xml.gz b/gstlal-inspiral/share/inspiral_datalesslndensity.xml.gz
new file mode 100644
index 0000000000000000000000000000000000000000..f73648a55c77f379f7f3a4064bc7f647c3afcb51
Binary files /dev/null and b/gstlal-inspiral/share/inspiral_datalesslndensity.xml.gz differ