diff --git a/gstlal-inspiral/tests/Makefile.offline_tutorial_test b/gstlal-inspiral/tests/Makefile.offline_tutorial_test
index 9ad9813f96b99f3dc405fbb361a07900a18dfc51..d10c76a944067da16d7eedff445a43dcc80a0100 100644
--- a/gstlal-inspiral/tests/Makefile.offline_tutorial_test
+++ b/gstlal-inspiral/tests/Makefile.offline_tutorial_test
@@ -1,10 +1,71 @@
 SHELL := /bin/bash # Use bash syntax
 
+#
+# gstlal offline tutorial
+#
+# Author: Duncan Meacher (duncan.meacher@ligo.org)
+#
+# This Makefile is designed to be a very basic introduction to the gstlal
+# workflow, as well as being a test script for continuous integration as part
+# of gitlab. The steps of this Makefile are:
+#
+# 1. Produce 2048s of fake data data that contains a single BNS injection with
+# an early aLIGO PSD.
+# 2. A simple frames.cache, segments.xml.gz, vetoes.xml.gz, and tisi.xml files
+# are produced, which are required for running gstlal_insiral.
+# 3. A very basic template template bank, focused around the injection
+# parameters, is produced. N_templates < 250.
+# 4. An SVD bank is then produced from this template bank.
+# 5. gstlal_inspiral is then run, producing output files containing triggers
+# and background statistics.
+# 6. The triggers are then asigned a ranking statistic, and are then clustered
+# so that only the loudest trigger within a 4s window remains.
+# 7. The background statistics collected in step 5 are sampled to find the
+# noise distribution of our ranking statistic. These are then combined across
+# the entire search.
+# 8. The noise distributions found in 7 are used to assign false alarm rates
+# (FARs) and probabilities (FAPs).
+# 9. Plotting scripts are then run and a summary page is produced.
+#
+# This Makefile is relatively self contained, it produces all required files
+# apart from the early_aligo_asd.txt file (found at
+# gstlal/gstlal/share/early_aligo_asd.txt), and the
+# Makefile.offline_analysis_rules file (found at
+# gstlal/gstlal-inspiral/share/Makefile.offline_analysis_rules). These are
+# currently linked with local paths, which are used for the CI tests, but it is
+# recomendded that when used as an offline tutorial that this script is not run
+# within the gstlal git repo. The paths will then need to be modified. If using
+# a optmised build (i.e.
+# gstlal-inspiral/share/post_O2/optimised/Makefile.ligosoftware_icc_gstreamer-1.0)
+# then these files will be copied across to the build directory and can found
+# by uncommenting to the $(LAL_PATH). If using other builds then full paths
+# should be used. The WEBDIR varibale should also be changed to point to the
+# accessible pages of the cluster being run on.
+#
+# NOTE: This Makefile is arranged "backwards" and should be read top to bottom.
+#
+# NOTE: lalapps_cbc_sbank takes a very long time to run within the CI
+# environment, so has been switched out for lalapps_tmpltbank, which is an
+# older bank generation code. If using as an offline tutorial, this can be
+# switched back.
+#
+# To run, making sure that the correct environment is sourced:
+#
+# 	$ make -f Makefile.offline_tutorial_test
+#
+# If you are able to run this Makefile without issues, then it is recomended to
+# run the BNS test dag. This produces a larger workflow that needs to be
+# submitted via condor, but should still finished within 24 hours. This can be
+# found here:
+#
+# 	gstlal/gstlal-inspiral/share/post_O2/Makefile.BNS_HL_test_dag_O2
+#
+
 ##################
 # Runtime outout #
 ##################
 
-# Prints runtime of each individual job. 
+# Prints runtime in secoonds of each individual job.
 # To disable leave blank.
 #TIME=
 TIME=time -p
@@ -38,6 +99,7 @@ TAG = gstlal_offline_tutorial
 RUN=run_1
 # A web directory for output
 WEBDIR = WEBDIR/$(TAG)/$(START)-$(STOP)-test_dag-$(RUN)
+#WEBDIR = ~/public_html/$(TAG)/$(START)-$(STOP)-test_dag-$(RUN)
 # The number of sub banks in each SVD bank file
 NUMBANKS = 1
 
@@ -93,11 +155,10 @@ CHANNEL_NAMES:=--channel-name=H1=$(H1_CHANNEL) --channel-name=L1=$(L1_CHANNEL)
 ###################################################################################
 
 # Link to offline analaysis rules in Makefile
-# Default is local path toi git repo version for CI.
+# Default is local path to git repo version for CI.
 # Change for other runs.
 include ../share/Makefile.offline_analysis_rules
 #include $(LAL_PATH)/share/gstlal/Makefile.offline_analysis_rules
-#include $(GSTLAL_PATH)/share/gstlal/Makefile.offline_analysis_rules
 
 # FIXME Is there a way to put this back in offline analysis rules?
 BANK_CACHE_STRING:=H1=H1_split_bank.cache,L1=L1_split_bank.cache
@@ -153,20 +214,22 @@ injections.xml:
 		--verbose
 	@echo ""
 
+# Default is local path to git repo version for CI.
+# Change for other runs.
 H1_psd.xml.gz:
 	# Generate H1 PSD used to produce fake data
 	# gstlal_psd_xml_from_asd_txt_0001
 	gstlal_psd_xml_from_asd_txt --instrument H1 --output $@ ../../gstlal/share/early_aligo_asd.txt
 	#gstlal_psd_xml_from_asd_txt --instrument H1 --output $@ $(LAL_PATH)/share/gstlal/early_aligo_asd.txt
-	#gstlal_psd_xml_from_asd_txt --instrument H1 --output $@ $(GSTLAL_PATH)/share/gstlal/early_aligo_asd.txt
 	@echo ""
- 
+
+# Default is local path to git repo version for CI.
+# Change for other runs.
 L1_psd.xml.gz:
 	# Generate L1 PSD used to produce fake data
 	# gstlal_psd_xml_from_asd_txt_0002
 	gstlal_psd_xml_from_asd_txt --instrument L1 --output $@ ../../gstlal/share/early_aligo_asd.txt
-	#gstlal_psd_xml_from_asd_txt --instrument L1 --output $@ $(LAL_PATH)/share/gstlal/early_aligo_asd.txt 
-	#gstlal_psd_xml_from_asd_txt --instrument L1 --output $@ $(GSTLAL_PATH)/share/gstlal/early_aligo_asd.txt 
+	#gstlal_psd_xml_from_asd_txt --instrument L1 --output $@ $(LAL_PATH)/share/gstlal/early_aligo_asd.txt
 	@echo ""
 
 H-H1_FAKE-10000/H-H1_FAKE-1000000000-512.gwf: H1_psd.xml.gz injections.xml
@@ -219,8 +282,7 @@ segments.xml.gz:
 	@echo ""
 
 vetoes.xml.gz:
-	# Produce veto file
-	# A Dummy vetoes file
+	# Produce a dummy veto file
 	@echo "Produce veto file"
 	echo 0 1 > vetoes.txt
 	ligolw_segments --insert-from-segwizard=H1=vetoes.txt --output H1_vetoes.xml.gz --name=vetoes
@@ -258,6 +320,7 @@ psd_horizon.png:
 	$(TIME) gstlal_plot_psd_horizon $@ measured_psd.xml.gz
 	@echo ""
 
+# FIXME sbank takes a very long to run in the CI environment.
 #gstlal_bank.xml.gz: measured_psd.xml.gz
 #	# Produce template bank
 #	$(TIME) lalapps_cbc_sbank \
@@ -325,6 +388,7 @@ gstlal_bank.xml.gz: frames.cache
 	mv H1-TMPLTBANK-1000000000-2048.xml.gz gstlal_bank.xml.gz
 	@echo ""
 
+# FIXME Doesn't work
 #template_bank_plot : gstlal_bank.xml.gz plots
 #	# gstlal_inspiral_plot_banks_0001
 #	gstlal_inspiral_plot_banks --template-bank-file gstlal_bank.xml.gz --plot-template-bank  --output-dir plots
@@ -545,7 +609,7 @@ gstlal_inspiral_plot_background_0001: gstlal_inspiral_plotsummary_0001
 		--database H1L1-ALL_LLOID-1000000000-2048.sqlite \
 		--user-tag ALL_LLOID_COMBINED \
 		--output-dir plots \
-		post_marginalized_likelihood.xml.gz 
+		post_marginalized_likelihood.xml.gz
 	@touch gstlal_inspiral_plot_background_0001
 	@echo ""
 
@@ -579,7 +643,7 @@ clean:
 	rm -rf H* L* *.txt *.xml *.gz *.cache gstlal_* lalapps_* ligolw_* $(WEBDIR)* plots/
 
 clean-data:
-	rm -rf H-H1_FAKE-* L-L1_FAKE-*
+	rm -rf H-H1_FAKE-* L-L1_FAKE-* frames.cache
 
 clean-webdir:
 	rm -rf $(WEBDIR)*