diff --git a/scripts/Diffraction/isis_powder/abstract_inst.py b/scripts/Diffraction/isis_powder/abstract_inst.py
index 0edcefd62a9e6a4a4662dc41b1604a55ec275e40..d7efcb8f929f66277637fab95b0cd8beb5b2197c 100644
--- a/scripts/Diffraction/isis_powder/abstract_inst.py
+++ b/scripts/Diffraction/isis_powder/abstract_inst.py
@@ -248,7 +248,8 @@ class AbstractInst(object):
         return _empty_hook_return_none()
 
     def _skip_appending_cycle_to_raw_dir(self):
-        return False
+        return True
+        # TODO set this to False if they just dump their raw files in one folder
 
     def _mask_noisy_detectors(self, vanadium_run):
         pass
diff --git a/scripts/Diffraction/isis_powder/focus.py b/scripts/Diffraction/isis_powder/focus.py
index a950fd8ea114af291ec4eeb420b6f1d7c76e21e1..e9f8365183bb14bf5342292ee30879e5d4341b4d 100644
--- a/scripts/Diffraction/isis_powder/focus.py
+++ b/scripts/Diffraction/isis_powder/focus.py
@@ -58,7 +58,7 @@ def _divide_sample_by_vanadium(instrument, run_number, input_workspace, perform_
 
     for index in range(0, alg_range):
         if perform_vanadium_norm:
-            vanadium_ws = mantid.LoadNexus(Filename=input_file_paths["vanadium"], EntryNumber=index + 1)
+            vanadium_ws = mantid.LoadNexus(Filename=input_file_paths["calibrated_vanadium"], EntryNumber=index + 1)
 
             processed_spectra.append(
                 instrument.correct_sample_vanadium(focused_ws=input_workspace, index=index, vanadium_ws=vanadium_ws))
@@ -66,6 +66,6 @@ def _divide_sample_by_vanadium(instrument, run_number, input_workspace, perform_
             common.remove_intermediate_workspace(vanadium_ws)
         else:
             processed_spectra.append(
-                instrument.calc_calibration_without_vanadium(focused_ws=input_workspace, index=index))
+                instrument.correct_sample_vanadium(focused_ws=input_workspace, index=index))
 
-    return processed_spectra
\ No newline at end of file
+    return processed_spectra
diff --git a/scripts/Diffraction/isis_powder/pearl.py b/scripts/Diffraction/isis_powder/pearl.py
index 64350f84a79ff5f13d7849e95b929da232cbfb8a..ce0d146be8d42bcd37715eef8085b0ecd5b1c04c 100644
--- a/scripts/Diffraction/isis_powder/pearl.py
+++ b/scripts/Diffraction/isis_powder/pearl.py
@@ -78,10 +78,12 @@ class Pearl(AbstractInst):
         van_absorb_full_path = calibration_dir + van_absorb
         van_file_full_path = calibration_dir + van_file
 
+        # TODO when we move PEARL to save out splined vanadium files support them below
         calibration_details = {"calibration": calibration_full_path,
                                "grouping": grouping_full_path,
                                "vanadium_absorption": van_absorb_full_path,
-                               "vanadium": van_file_full_path}
+                               "vanadium": van_file_full_path,
+                               "calibrated_vanadium": van_file_full_path}
 
         return calibration_details
 
diff --git a/scripts/Diffraction/isis_powder/polaris.py b/scripts/Diffraction/isis_powder/polaris.py
index be0d90af90cf2632afc7ae84b29661d9c0e226f9..695ed4d108d8ae067e7089bd09683dbc056247e2 100644
--- a/scripts/Diffraction/isis_powder/polaris.py
+++ b/scripts/Diffraction/isis_powder/polaris.py
@@ -4,6 +4,7 @@ import mantid.simpleapi as mantid
 
 from isis_powder.abstract_inst import AbstractInst
 from isis_powder.polaris_routines import polaris_calib_factory
+from isis_powder.polaris_routines import polaris_calib_parser
 
 import isis_powder.common as common
 
@@ -43,19 +44,25 @@ class Polaris(AbstractInst):
 
     def _get_calibration_full_paths(self, cycle):
         # TODO implement this properly
-        offset_file_name, grouping_file_name, vanadium_file_name = polaris_calib_factory.get_calibration_file(cycle)
+        # offset_file_name, grouping_file_name, vanadium_file_name = polaris_calib_factory.get_calibration_file(cycle)
 
+        configuration = polaris_calib_parser.get_calibration_dict(cycle)
         calibration_dir = self.calibration_dir
 
-        calibration_full_path = calibration_dir + offset_file_name
-        grouping_full_path = calibration_dir + grouping_file_name
-        vanadium_absorb_full_path = None
-        vanadium_full_path = self.raw_data_dir + vanadium_file_name
+        # Assume the raw vanadium is with other raw files
+        vanadium_full_path = self.raw_data_dir + configuration["vanadium_file_name"]
+
+        calibration_full_path = calibration_dir + configuration["offset_file_name"]
+        grouping_full_path = calibration_dir + configuration["grouping_file_name"]
+
+        calibrated_full_path = calibration_dir + configuration["calibrated_vanadium_file_name"]
+        solid_angle_file_path = calibration_dir + configuration["solid_angle_file_name"]
 
         calibration_details = {"calibration": calibration_full_path,
                                "grouping": grouping_full_path,
-                               "vanadium_absorption": vanadium_absorb_full_path,
-                               "vanadium": vanadium_full_path}
+                               "vanadium": vanadium_full_path,
+                               "calibrated_vanadium": calibrated_full_path,
+                               "solid_angle_corr": solid_angle_file_path}
 
         return calibration_details
 
@@ -71,7 +78,7 @@ class Polaris(AbstractInst):
 
     @staticmethod
     def _get_cycle_information(run_number):
-        return {"cycle": "",  # TODO implement properly
+        return {"cycle": "test",  # TODO implement properly
                 "instrument_version": ""}
 
     def _normalise_ws(self, ws_to_correct, monitor_ws=None, spline_terms=20):
@@ -133,10 +140,16 @@ class Polaris(AbstractInst):
         ws_to_correct = corrected_ws
         return ws_to_correct
 
-    def _focus_processing(self, run_number, input_workspace, perform_vanadium_norm):
-        self._get_cycle_information(run_number=run_number)
-
+    def correct_sample_vanadium(self, focused_ws, index, vanadium_ws=None):
+        spectra_name = "sample_ws-" + str(index + 1)
+        mantid.CropWorkspace(InputWorkspace=focused_ws, OutputWorkspace=spectra_name,
+                             StartWorkspaceIndex=index, EndWorkspaceIndex=index)
+        if vanadium_ws:
+            van_rebinned = mantid.RebinToWorkspace(WorkspaceToRebin=vanadium_ws, WorkspaceToMatch=spectra_name)
+            mantid.Divide(LHSWorkspace=spectra_name, RHSWorkspace=van_rebinned, OutputWorkspace=spectra_name)
+            common.remove_intermediate_workspace(van_rebinned)
 
+        return spectra_name
 
     def _spline_background(self, focused_vanadium_ws, spline_number, instrument_version=''):
 
@@ -144,7 +157,7 @@ class Polaris(AbstractInst):
             spline_number = 100
 
         mode = "spline"  # TODO support spline modes for all instruments
-        extracted_spectra = _extract_vanadium_spectra(focused_vanadium_ws, self._number_of_banks)
+        extracted_spectra = _extract_bank_spectra(focused_vanadium_ws, self._number_of_banks)
 
         if mode == "spline":
             output = self._mask_spline_vanadium_ws(vanadium_spectra_list=extracted_spectra,
@@ -221,14 +234,14 @@ class Polaris(AbstractInst):
 # Class private implementation
 
 
-def _extract_vanadium_spectra(vanadium_ws, num_banks):
-    vanadium_spectra_list = []
+def _extract_bank_spectra(ws_to_split, num_banks):
+    spectra_bank_list = []
     for i in range(0, num_banks):
-        output_name = "vanadium-" + str(i + 1)
+        output_name = "bank-" + str(i + 1)
         # Have to use crop workspace as extract single spectrum struggles with the variable bin widths
-        vanadium_spectra_list.append(mantid.CropWorkspace(InputWorkspace=vanadium_ws, OutputWorkspace=output_name,
-                                                          StartWorkspaceIndex=i, EndWorkspaceIndex=i))
-    return vanadium_spectra_list
+        spectra_bank_list.append(mantid.CropWorkspace(InputWorkspace=ws_to_split, OutputWorkspace=output_name,
+                                                      StartWorkspaceIndex=i, EndWorkspaceIndex=i))
+    return spectra_bank_list
 
 
 def _apply_masking(workspaces_to_mask, mask_list):
@@ -253,5 +266,3 @@ def _apply_masking(workspaces_to_mask, mask_list):
 
     return output_workspaces
 
-
-def _divide_sample_vanadium_splines(sample_ws, vanadium_splines_ws)
\ No newline at end of file
diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_calib_parser.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_calib_parser.py
new file mode 100644
index 0000000000000000000000000000000000000000..86589d2223c50c832f81ca5e030ab85e2699f511
--- /dev/null
+++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_calib_parser.py
@@ -0,0 +1,29 @@
+from __future__ import (absolute_import, division, print_function)
+
+import os
+import yaml
+
+
+def get_calibration_dict(cycle):
+    config_file = _open_yaml_file()
+    try:
+        output = config_file[str(cycle)]
+    except KeyError:
+        raise RuntimeError("Cycle " + str(cycle) + " not defined in calibration file")
+    return output
+
+
+def _open_yaml_file():
+    config_file_name = "polaris_calibration.yaml"
+    config_file_path = os.path.join(os.path.dirname(__file__), config_file_name)
+
+    read_config = None
+
+    with open(config_file_path, 'r') as input_stream:
+        try:
+            read_config = yaml.load(input_stream)
+        except yaml.YAMLError as exception:
+            print(exception)
+            raise RuntimeError("Failed to parse POLARIS calibration YAML file")
+
+    return read_config
diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_calibration.yaml b/scripts/Diffraction/isis_powder/polaris_routines/polaris_calibration.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..125f1d312986e5d3d8bb7a3496204e0a86708c5c
--- /dev/null
+++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_calibration.yaml
@@ -0,0 +1,15 @@
+# The format is as follows:
+
+#cycle:
+#  offset_file_name : "name.cal"
+#  grouping_file_name : "grouping.cal"
+#  vanadium_file_name : "raw_vanadium_run.raw"
+#  calibrated_vanadium_file_name : "calibrated_vanadium_name.nxs"
+#  solid_angle_file_name : "solid_angle_corrections.nxs"
+
+test:
+  offset_file_name : "offsets_2011_cycle111b.cal"
+  grouping_file_name : "offsets_2011_cycle111b.cal"
+  vanadium_file_name : "POL78338.raw"
+  calibrated_vanadium_file_name : "calibrated_vanadium_name.nxs"
+  solid_angle_file_name : "solid_angle_corrections.nxs"