Repository: WISDEM/ORBIT (language: python)

Issue:
Electrical refactor
Cleaned up some variable names and tests for `ElectricalDesign`. I also added some tests to compare the new offshore substation design with the old version. At this stage everything is still backwards compatible because we're not removing the legacy export system or offshore design modules. 

Added a specific HVAC/HVDC example to help users define the export cable technology for their project. 


Discussion / hints:

Fix patch:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 11d5dee0..a78c9c13 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -34,6 +34,7 @@ repos:
         args: [--autofix]
 
 -   repo: https://github.com/pre-commit/mirrors-pylint
+    rev: v3.0.0a5
     rev: v3.0.0a5
     hooks:
     -   id: pylint
diff --git a/ORBIT/api/wisdem.py b/ORBIT/api/wisdem.py
index f0524928..f0a80256 100644
--- a/ORBIT/api/wisdem.py
+++ b/ORBIT/api/wisdem.py
@@ -14,6 +14,8 @@
 
 
 class Orbit(om.Group):
+    """Orbit class for WISDEM API"""
+
     def initialize(self):
         self.options.declare("floating", default=False)
         self.options.declare("jacket", default=False)
@@ -27,7 +29,8 @@ def setup(self):
         self.set_input_defaults("num_feeders", 1)
         self.set_input_defaults("num_towing", 1)
         self.set_input_defaults("num_station_keeping", 3)
-        self.set_input_defaults("oss_install_vessel", "example_heavy_lift_vessel")
+        self.set_input_defaults("oss_install_vessel",
+                                "example_heavy_lift_vessel")
         self.set_input_defaults("site_distance", 40.0, units="km")
         self.set_input_defaults("site_distance_to_landfall", 40.0, units="km")
         self.set_input_defaults("interconnection_distance", 40.0, units="km")
@@ -43,7 +46,8 @@ def setup(self):
         self.set_input_defaults("site_auction_price", 100e6, units="USD")
         self.set_input_defaults("site_assessment_plan_cost", 1e6, units="USD")
         self.set_input_defaults("site_assessment_cost", 25e6, units="USD")
-        self.set_input_defaults("construction_operations_plan_cost", 2.5e6, units="USD")
+        self.set_input_defaults("construction_operations_plan_cost",
+                                2.5e6, units="USD")
         self.set_input_defaults("design_install_plan_cost", 2.5e6, units="USD")
         self.set_input_defaults("boem_review_cost", 0.0, units="USD")
 
@@ -292,8 +296,7 @@ def compile_orbit_config_file(self, inputs, outputs, discrete_inputs, discrete_o
                 "cables": ["XLPE_630mm_66kV", "XLPE_185mm_66kV"],
             },
             "export_system_design": {
-                "cables": "XLPE_1000m_220kV",
-                "landfall":{"interconnection_distance": float(inputs["interconnection_distance"])},
+                "cables": "XLPE_1000mm_220kV",
                 "interconnection_distance": float(inputs["interconnection_distance"]),
                 "percent_added_length": 0.1,
             },
diff --git a/ORBIT/core/defaults/process_times.yaml b/ORBIT/core/defaults/process_times.yaml
index 1c141c78..4be5543d 100644
--- a/ORBIT/core/defaults/process_times.yaml
+++ b/ORBIT/core/defaults/process_times.yaml
@@ -13,9 +13,9 @@
 "cable_lower_time": 1             # hr
 "cable_pull_in_time": 5.5         # hr
 "cable_termination_time": 5.5     # hr
-"cable_lay_speed": 1              # km/hr
-"cable_lay_bury_speed": 0.3       # km/hr
-"cable_bury_speed": 0.5           # km/hr
+"cable_lay_speed": 0.4            # km/hr
+"cable_lay_bury_speed": 0.0625    # km/hr
+"cable_bury_speed": 0.4           # km/hr
 "cable_splice_time": 48           # hr
 "cable_raise_time": 0.5           # hr
 
diff --git a/ORBIT/phases/design/__init__.py b/ORBIT/phases/design/__init__.py
index 120d1e83..8ef543e0 100644
--- a/ORBIT/phases/design/__init__.py
+++ b/ORBIT/phases/design/__init__.py
@@ -16,4 +16,3 @@
 from .mooring_system_design import MooringSystemDesign
 from .scour_protection_design import ScourProtectionDesign
 from .semi_submersible_design import SemiSubmersibleDesign
-from .electrical_export import ElectricalDesign
diff --git a/ORBIT/phases/design/electrical_export.py b/ORBIT/phases/design/electrical_export.py
index dc91fad8..daf83ed0 100644
--- a/ORBIT/phases/design/electrical_export.py
+++ b/ORBIT/phases/design/electrical_export.py
@@ -16,8 +16,30 @@ class ElectricalDesign(CableSystem):
     """
     Design phase for export cabling and offshore substation systems.
 
+    Attributes
+    ----------
+    num_cables : int
+        Total number of cables required for transmitting power.
+    length : float
+        Length of a single cable connecting the OSS to the interconnection
+        in km.
+    mass : float
+        Mass of `length` in tonnes.
+    cable : `Cable`
+        Instance of `ORBIT.phases.design.Cable`. An export system will
+        only require a single type of cable.
+    total_length : float
+        Total length of cable required to trasmit power.
+    total_mass : float
+        Total mass of cable required to transmit power.
+    sections_cables : np.ndarray, shape: (`num_cables, )
+        An array of `cable`.
+    sections_lengths : np.ndarray, shape: (`num_cables, )
+        An array of `length`.
+
     """
 
+    #:
     expected_config = {
         "site": {"distance_to_landfall": "km", "depth": "m"},
         "landfall": {"interconnection_distance": "km (optional)"},
@@ -34,20 +56,25 @@ class ElectricalDesign(CableSystem):
             },
         },
         "substation_design": {
-            "mpt_cost_rate": "USD/MW (optional)",
-            "topside_fab_cost_rate": "USD/t (optional)",
+            "substation_capacity": "MW (optional)",
+            "num_substations": "int (optional)",
+            "mpt_unit_cost": "USD/cable (optional)",
             "topside_design_cost": "USD (optional)",
-            "shunt_cost_rate": "USD/MW (optional)",
+            "shunt_unit_cost": "USD/cable (optional)",
             "switchgear_cost": "USD (optional)",
-            "dc_breaker_cost": "int (optional)",
+            "dc_breaker_cost": "USD (optional)",
             "backup_gen_cost": "USD (optional)",
             "workspace_cost": "USD (optional)",
             "other_ancillary_cost": "USD (optional)",
             "converter_cost": "USD (optional)",
+            "onshore_converter_cost": "USD (optional)",
             "topside_assembly_factor": "float (optional)",
             "oss_substructure_cost_rate": "USD/t (optional)",
             "oss_pile_cost_rate": "USD/t (optional)",
-            "num_substations": "int (optional)",
+        },
+        "onshore_substation_design": {
+            "shunt_unit_cost": "USD/cable (optional)",
+            "onshore_converter_cost": "USD (optional)",
         },
     }
 
@@ -107,7 +134,10 @@ def run(self):
 
         self.export_system_design = self.config["export_system_design"]
         self.offshore_substation_design = self.config.get(
-            "offshore_substation_design", {}
+            "substation_design", {}
+        )
+        self.onshore_substation_design = self.config.get(
+            "onshore_substation_design", {}
         )
 
         # CABLES
@@ -167,6 +197,7 @@ def run(self):
         }
 
         self._outputs["num_substations"] = self.num_substations
+        self._outputs["total_substation_cost"] = self.total_substation_cost
 
     @property
     def detailed_output(self):
@@ -185,6 +216,12 @@ def detailed_output(self):
             "substation_substructure_mass": self.substructure_mass,
             "substation_substructure_cost": self.substructure_cost,
             "total_substation_cost": self.total_substation_cost,
+            "onshore_shunt_cost": self.onshore_shunt_reactor_cost,
+            "onshore_converter_cost": self.onshore_converter_cost,
+            "onshore_switchgear_cost": self.onshore_switchgear_cost,
+            "onshore_construction_cost": self.onshore_construction,
+            "onshore_compensation_cost": self.onshore_compensation_cost,
+            "onshore_mpt_cost": self.mpt_cost,
         }
 
         return _output
@@ -208,20 +245,20 @@ def compute_number_cables(self):
         """
         Calculate the total number of required and redundant cables to
         transmit power to the onshore interconnection.
+
+        Parameters
+        ----------
+        num_redundant : int
         """
-        if (
-            self.cable.cable_type == "HVDC-monopole"
-            or self.cable.cable_type == "HVDC-bipole"
-        ):
-            num_required = 2 * np.ceil(
-                self._plant_capacity / self.cable.cable_power
-            )
-            num_redundant = 2 * self._design.get("num_redundant", 0)
-        else:
-            num_required = np.ceil(
-                self._plant_capacity / self.cable.cable_power
-            )
-            num_redundant = self._design.get("num_redundant", 0)
+
+        _num_redundant = self._design.get("num_redundant", 0)
+
+        num_required = np.ceil(self._plant_capacity / self.cable.cable_power)
+        num_redundant = self._design.get("num_redundant", 0)
+
+        if "HVDC" in self.cable.cable_type:
+            num_required *= 2
+            num_redundant *= 2
 
         self.num_cables = int(num_required + num_redundant)
 
@@ -295,26 +332,35 @@ def calc_crossing_cost(self):
 
     @property
     def total_substation_cost(self):
-        """Computes total substation cost"""
+        """Returns the total substation cost."""
+
         return (
             self.topside_cost + self.substructure_cost + self.substation_cost
         )
 
     def calc_num_substations(self):
-        """Computes number of substations"""
+        """Computes number of substations based on HVDC or HVAC
+        export cables.
 
+        Parameters
+        ----------
+        substation_capacity : int | float
+        """
         self._design = self.config.get("substation_design", {})
-        if self.cable.cable_type == "HVDC-monopole":
-            self.num_substations = self._design.get(
-                "num_substations", int(self.num_cables / 2)
-            )
-        elif self.cable.cable_type == "HVDC-bipole":
+
+        # HVAC substation capacity
+        _substation_capacity = self._design.get(
+            "substation_capacity", 1200
+        )  # MW
+
+        if "HVDC" in self.cable.cable_type:
             self.num_substations = self._design.get(
                 "num_substations", int(self.num_cables / 2)
             )
         else:
             self.num_substations = self._design.get(
-                "num_substations", int(np.ceil(self._plant_capacity / 800))
+                "num_substations",
+                int(np.ceil(self._plant_capacity / _substation_capacity)),
             )
 
     @property
@@ -327,63 +373,83 @@ def substation_cost(self):
             + self.switchgear_cost
             + self.converter_cost
             + self.dc_breaker_cost
-            + self.ancillary_system_cost
+            + self.ancillary_system_costs
             + self.land_assembly_cost
         ) / self.num_substations
 
     def calc_mpt_cost(self):
-        """Computes transformer cost"""
+        """Computes HVAC main power transformer (MPT). MPT cost is 0 for HVDC.
+
+        Parameters
+        ----------
+        mpt_unit_cost : int | float
+        """
+
+        _mpt_cost = self._design.get("mpt_unit_cost", 2.87e6)
 
         self.num_mpt = self.num_cables
-        self.mpt_cost = self.num_mpt * self._design.get(
-            "mpt_cost_rate", 1750000
-        )
+
+        if "HVDC" in self.cable.cable_type:
+            self.mpt_cost = 0
+
+        else:
+            self.mpt_cost = self.num_mpt * _mpt_cost
+
         self.mpt_rating = (
             round((self._plant_capacity * 1.15 / self.num_mpt) / 10.0) * 10.0
         )
 
     def calc_shunt_reactor_cost(self):
-        """Computes shunt reactor cost"""
+        """Computes HVAC shunt reactor cost. Shunt reactor cost is 0 for HVDC.
+
+        Parameters
+        ----------
+        shunt_unit_cost : int | float
+        """
 
         touchdown = self.config["site"]["distance_to_landfall"]
+        shunt_unit_cost = self._design.get("shunt_unit_cost", 1e4)
 
-        if (
-            self.cable.cable_type == "HVDC-monopole"
-            or self.cable.cable_type == "HVDC-bipole"
-        ):
-            compensation = 0
+        if "HVDC" in self.cable.cable_type:
+            self.compensation = 0
         else:
             for _, cable in self.cables.items():
-                compensation = touchdown * cable.compensation_factor  # MW
+                self.compensation = touchdown * cable.compensation_factor  # MW
         self.shunt_reactor_cost = (
-            compensation
-            * self._design.get("shunt_cost_rate", 99000)
-            * self.num_cables
+            self.compensation * shunt_unit_cost * self.num_cables
         )
 
     def calc_switchgear_costs(self):
-        """Computes switchgear cost"""
+        """Computes HVAC switchgear cost. Switchgear cost is 0 for HVDC.
 
-        if (
-            self.cable.cable_type == "HVDC-monopole"
-            or self.cable.cable_type == "HVDC-bipole"
-        ):
-            num_switchgear = 0
-        else:
-            num_switchgear = self.num_cables
-        self.switchgear_cost = num_switchgear * self._design.get(
-            "switchgear_cost", 134000
+        Parameters
+        ----------
+        switchgear_cost : int | float
+        """
+
+        switchgear_cost = self._design.get("switchgear_cost", 4e6)
+
+        num_switchgear = (
+            0 if "HVDC" in self.cable.cable_type else self.num_cables
         )
 
+        self.switchgear_cost = num_switchgear * switchgear_cost
+
     def calc_dc_breaker_cost(self):
-        """Computes HVDC circuit breaker cost"""
-        if self.cable.cable_type == "HVAC":
-            num_dc_breaker = 0
-        else:
-            num_dc_breaker = self.num_cables
-        self.dc_breaker_cost = num_dc_breaker * self._design.get(
-            "dc_breaker_cost", 40000000
-        )  # 4e6
+        """Computes HVDC circuit breaker cost. Breaker cost is 0 for HVAC.
+
+        Parameters
+        ----------
+        dc_breaker_cost : int | float
+        """
+
+        dc_breaker_cost = self._design.get("dc_breaker_cost", 10.5e6)
+
+        num_dc_breakers = (
+            self.num_cables if "HVDC" in self.cable.cable_type else 0
+        )
+
+        self.dc_breaker_cost = num_dc_breakers * dc_breaker_cost
 
     def calc_ancillary_system_cost(self):
         """
@@ -400,7 +466,7 @@ def calc_ancillary_system_cost(self):
         workspace_cost = self._design.get("workspace_cost", 2e6)
         other_ancillary_cost = self._design.get("other_ancillary_cost", 3e6)
 
-        self.ancillary_system_cost = (
+        self.ancillary_system_costs = (
             backup_gen_cost + workspace_cost + other_ancillary_cost
         ) * self.num_substations
 
@@ -408,16 +474,16 @@ def calc_converter_cost(self):
         """Computes converter cost"""
 
         if self.cable.cable_type == "HVDC-monopole":
-            self.num_converters = self.num_cables / 2
+            self.converter_cost = self.num_substations * self._design.get(
+                "converter_cost", 127e6
+            )
 
         elif self.cable.cable_type == "HVDC-bipole":
-            self.num_converters = self.num_cables
+            self.converter_cost = self.num_substations * self._design.get(
+                "converter_cost", 296e6
+            )
         else:
-            self.num_converters = 0
-
-        self.converter_cost = self.num_converters * self._design.get(
-            "converter_cost", 137e6
-        )
+            self.converter_cost = 0
 
     def calc_assembly_cost(self):
         """
@@ -433,7 +499,7 @@ def calc_assembly_cost(self):
         self.land_assembly_cost = (
             self.switchgear_cost
             + self.shunt_reactor_cost
-            + self.ancillary_system_cost
+            + self.ancillary_system_costs
         ) * topside_assembly_factor
 
     def calc_substructure_mass_and_cost(self):
@@ -447,12 +513,12 @@ def calc_substructure_mass_and_cost(self):
         """
 
         _design = self.config.get("substation_design", {})
+        substructure_mass = 0.4 * self.topside_mass
+        oss_pile_cost_rate = _design.get("oss_pile_cost_rate", 0)
         oss_substructure_cost_rate = _design.get(
             "oss_substructure_cost_rate", 3000
         )
-        oss_pile_cost_rate = _design.get("oss_pile_cost_rate", 0)
 
-        substructure_mass = 0.4 * self.topside_mass
         substructure_pile_mass = 8 * substructure_mass**0.5574
         self.substructure_cost = (
             substructure_mass * oss_substructure_cost_rate
@@ -492,32 +558,85 @@ def calc_topside_mass_and_cost(self):
 
         Parameters
         ----------
-        topside_fab_cost_rate : int | float
         topside_design_cost: int | float
         """
 
         _design = self.config.get("substation_design", {})
-        topside_fab_cost_rate = _design.get("topside_fab_cost_rate", 14500)
-        topside_design_cost = _design.get("topside_design_cost", 4.5e6)
 
         self.topside_mass = (
             3.85 * (self.mpt_rating * self.num_mpt) / self.num_substations
             + 285
         )
-        self.topside_cost = (
-            self.topside_mass * topside_fab_cost_rate + topside_design_cost
-        )
+        if self.cable.cable_type == "HVDC-monopole":
+            self.topside_cost = _design.get("topside_design_cost", 294e6)
+        elif self.cable.cable_type == "HVDC-bipole":
+            self.topside_cost = _design.get("topside_design_cost", 476e6)
+        else:
+            self.topside_cost = _design.get("topside_design_cost", 107.3e6)
 
     def calc_onshore_cost(self):
-        """Minimum Cost of Onshore Substation Connection"""
+        """Minimum Cost of Onshore Substation Connection
+
+        Parameters
+        ----------
+        shunt_unit_cost : int | float
+        onshore_converter_cost: int | float
+        switchgear_cost: int | float
+        """
+
+        _design = self.config.get("onshore_substation_design", {})
+
+        _shunt_unit_cost = _design.get("shunt_unit_cost", 1.3e4)  # per cable
+        _switchgear_cost = _design.get("switchgear_cost", 9.33e6)  # per cable
+        _compensation_rate = _design.get(
+            "compensation_rate", 31.3e6
+        )  # per cable
+
+        self.onshore_shunt_reactor_cost = (
+            self.compensation * self.num_cables * _shunt_unit_cost
+        )
+
+        if self.cable.cable_type == "HVDC-monopole":
+            self.onshore_converter_cost = (
+                self.num_substations
+                * self._design.get("onshore_converter_cost", 157e6)
+            )
+            self.onshore_switchgear_cost = 0
+            self.onshore_construction = self.num_substations * _design.get(
+                "onshore_construction_rate", 87.3e6
+            )
+            self.onshore_compensation_cost = 0
+
+        elif self.cable.cable_type == "HVDC-bipole":
+            self.onshore_converter_cost = (
+                self.num_substations
+                * self._design.get("onshore_converter_cost", 350e6)
+            )
+            self.onshore_switchgear_cost = 0
+            self.onshore_construction = self.num_substations * _design.get(
+                "onshore_construction_rate", 100e6
+            )
+            self.onshore_compensation_cost = 0
+
+        else:
+            self.onshore_converter_cost = 0
+            self.onshore_switchgear_cost = self.num_cables * _switchgear_cost
+            self.onshore_construction = self.num_substations * _design.get(
+                "onshore_construction_rate", 5e6
+            )
+            self.onshore_compensation_cost = (
+                self.num_cables * _compensation_rate
+                + self.onshore_shunt_reactor_cost
+            )
 
         self.onshore_cost = (
-            self.converter_cost
-            + self.dc_breaker_cost
+            self.onshore_converter_cost
+            + self.onshore_switchgear_cost
+            + self.onshore_construction
+            + self.onshore_compensation_cost
             + self.mpt_cost
-            + self.switchgear_cost
         )
 
         self._outputs["export_system"][
-            "onshore_construction_cost"
+            "onshore_substation_costs"
         ] = self.onshore_cost
diff --git a/ORBIT/phases/design/oss_design.py b/ORBIT/phases/design/oss_design.py
index e762eab5..37f55ee4 100644
--- a/ORBIT/phases/design/oss_design.py
+++ b/ORBIT/phases/design/oss_design.py
@@ -136,7 +136,8 @@ def calc_topside_deck_space(self):
 
     def calc_num_mpt_and_rating(self):
         """
-        Calculates the number of main power transformers (MPTs) and their rating.
+        Calculates the number of main power transformers (MPTs)
+        and their rating.
 
         Parameters
         ----------
@@ -151,7 +152,7 @@ def calc_num_mpt_and_rating(self):
         capacity = num_turbines * turbine_rating
 
         self.num_substations = _design.get(
-            "num_substations", int(np.ceil(capacity / 800))
+            "num_substations", int(np.ceil(capacity / 1200))
         )
         self.num_mpt = np.ceil(
             num_turbines * turbine_rating / (250 * self.num_substations)
@@ -226,7 +227,7 @@ def calc_switchgear_cost(self):
         """
 
         _design = self.config.get("substation_design", {})
-        switchgear_cost = _design.get("switchgear_cost", 14.5e5)
+        switchgear_cost = _design.get("switchgear_cost", 4e6)
 
         self.switchgear_costs = self.num_mpt * switchgear_cost
 
@@ -284,7 +285,7 @@ def calc_substructure_mass_and_cost(self):
         oss_pile_cost_rate = _design.get("oss_pile_cost_rate", 0)
 
         substructure_mass = 0.4 * self.topside_mass
-        substructure_pile_mass = 8 * substructure_mass ** 0.5574
+        substructure_pile_mass = 8 * substructure_mass**0.5574
         self.substructure_cost = (
             substructure_mass * oss_substructure_cost_rate
             + substructure_pile_mass * oss_pile_cost_rate
diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst
index 07ab75f2..0b8e1003 100644
--- a/docs/source/changelog.rst
+++ b/docs/source/changelog.rst
@@ -3,6 +3,31 @@
 ORBIT Changelog
 ===============
 
+Unreleased (TBD)
+----------------
+
+- Updated ``ElectricalDesign`` module.
+This class combines the elements of ``ExportSystemDesign`` and the ``OffshoreSubstationDesign`` modules. Its purpose is to represent the export system more accurately
+by linking the type of cable (AC versus DC) and substation’s components (i.e. transformers versus converters).Figure 1 shows how to add ElectricalDesign() to a yaml
+configuration file. Most export and substation component costs were updated to include a per-unit cost rather than a per-MW cost rate and they can be added to the
+yaml file as arguments too. Otherwise, those per-unit costs use default and were determined with the help of a subcontractor.
+    - This module’s components’ cost scales with number of cables and substations rather than plant capacity.
+    - The offshore substation cost is calculated based on the cable type and number of cables, rather than scaling function based on plant capacity.
+    - The mass of an HVDC and HVAC substation are assumed to be the same. Without any new information the substructure mass and cost functions did not change.
+    - An experimental onshore cost function was also added to account for the duplicated interconnection components. Costs will vary depending on the cable type.
+
+.. image:: ./images/ElectricalDesignConfig.png
+
+Figure 1: Adding the new ElectricalDesign class to design phase in the yaml configuration file (left) versus using the original ExportDesignSystem and
+OffshoreSubstationDesign classes (right). Note: ORBIT will not override output values from a design phase, so it will use the first instance and ignore
+any subsequent designs that produce the same outputs.
+
+- Added an example notebook: `Example - Using HVDC or HVAC`
+This new example showcases the capabilities of the ``ElectricalDesign`` class. It demonstrates how to create projects using HVAC or HVDC cables and
+how to use ParametricManager to compare the two design decisions.
+
+- Expanded tests to demonstrate new features in ``ElectricalDesign``.
+
 1.0.8
 -----
 
diff --git a/docs/source/doc_ParametricManager.rst b/docs/source/doc_ParametricManager.rst
new file mode 100644
index 00000000..ec825223
--- /dev/null
+++ b/docs/source/doc_ParametricManager.rst
@@ -0,0 +1,11 @@
+.. _managertoc:
+
+Parametric Manager
+=============
+
+The following pages cover the methodology behind the parametric manager. For
+more details of the code implementation, please see :doc:`Parametric Manager API <api_ParametricManager>`.
+
+.. note::
+
+    Page currently under construction.
diff --git a/docs/source/doc_ProjectManager.rst b/docs/source/doc_ProjectManager.rst
new file mode 100644
index 00000000..6bf81e32
--- /dev/null
+++ b/docs/source/doc_ProjectManager.rst
@@ -0,0 +1,49 @@
+.. _managertoc:
+
+Project Manager
+=============
+
+The following pages cover the methodology behind the project manager.
+
+.. note::
+
+    Page currently under construction.
+
+Overview
+--------
+The ``ProjectManager`` is the primary system for interacting with ORBIT to simulate
+a wind project. Users can customize their project by specifying a a wide variety of
+parameters as a dictionary (see tutorial: :ref:`Project Manager Tutorial <project_manager>`).
+For more details of the code implementation, please see :doc:`Project Manager API <api_ProjectManager>`.
+
+It instantiates a class aggregates project parameters, specifies a start date, and interprets a weather
+profile, and it employs a collection of decorators, `methods`, and `classmethods` to run the simulation.
+Among these methods are `design_phases` and `install_phases` that serve as components to the simulation.
+Additionally, some methods search and catch key errors to avoid simulation issues, export progress logs,
+and save the outputs.
+
+Run
+---
+This method checks to see if a design or install phase is instatiated prior to running them. Depending on
+which design phases are specified, each phase is run in no particular order and the results are added to
+`.design_results` dictionary. Conversely, the install phases can be run sequentially or as overlapped
+processes (see example: :ref:`Overlapping install <project_manager>`). It is worth noting, that ORBIT
+has built in logic to determine any dependency between install phases.
+
+Properties
+----------
+The `@property` decorators allow the ``ProjectManager`` to access and manipulate the attributes of certain classes. Of the
+several properties some important ones are:
+
+.. toctree::
+    :maxdepth: 2
+    :caption: Contents:
+
+- capex_categories: CapEx Categories
+- npv: Net Present Value
+
+Finally, these attributes are collected in an `output` dictionary.
+
+References
+----------
+Stehly, Tyler, and Philipp Beiter. 2019. “2018 Cost of Wind Energy Review.” Renewable Energy. https://www.nrel.gov/docs/fy20osti/74598.pdf.
diff --git a/docs/source/images/ElectricalDesignConfig.png b/docs/source/images/ElectricalDesignConfig.png
new file mode 100644
index 00000000..5721c962
Binary files /dev/null and b/docs/source/images/ElectricalDesignConfig.png differ
diff --git a/docs/source/intro/bos.rst b/docs/source/intro/bos.rst
index 30b672ca..44806dbd 100644
--- a/docs/source/intro/bos.rst
+++ b/docs/source/intro/bos.rst
@@ -10,6 +10,15 @@ The balance-of-system (BOS) costs of an offshore wind plant include:
 - Onshore construction costs required to connect the turbine to the grid
 - Port fees and commissioning costs
 
+.. note::
+
+    ORBIT does not specify a dollar-year when calculating BOS cost and it does
+    not account for inflation. To provide a flexible and adaptable simulation
+    model, components of the wind plant may incorporate `default` cost values.
+    Please advise that these values are approximated using avaiable information
+    or best-guess. To improve the fidelity of this tool, users should consider
+    replacing the `default` values with better informed costs.
+
 Evaluating BOS costs is complicated by the large number of design choices for
 each component, the impact of weather delays on the installation processes, the
 challenge of transporting and hoisting large components at sea, the variation
diff --git a/docs/source/methods.rst b/docs/source/methods.rst
index db3db7da..24ea96ed 100644
--- a/docs/source/methods.rst
+++ b/docs/source/methods.rst
@@ -6,5 +6,7 @@ Methodology
 .. toctree::
    :maxdepth: 2
 
+   doc_ProjectManager
+   doc_ParametricManager
    doc_DesignPhase
    doc_InstallPhase
diff --git a/docs/source/phases/design/doc_ElectricalDesign.rst b/docs/source/phases/design/doc_ElectricalDesign.rst
index 7607b7d8..5f038d95 100644
--- a/docs/source/phases/design/doc_ElectricalDesign.rst
+++ b/docs/source/phases/design/doc_ElectricalDesign.rst
@@ -10,8 +10,9 @@ Overview
 Below is an overview of the process used to design an export cable system and
 offshore substation in ORBIT using the ElectricalDesign module. This module is to be
 used in place of both the ExportSystemDesign module and the OffshoreSubstationDesign
-module as it codesigns the export cables and offshore substation. For more detail on the
-helper classes used to support this design please see :doc:`Cabling Helper Classes
+module as it codesigns the export cables and offshore substation. Depending on whether
+HVAC or HVDC cables are selected, different components will contribute to the final BOS.
+For more detail on the helper classes used to support this design please see :doc:`Cabling Helper Classes
 <doc_CableHelpers>`, specifically :class:`Cable` and :class:`CableSystem`.
 
 
@@ -39,49 +40,88 @@ impractical.
 
 :math:`length = (d + distance_\text{landfall} + distance_\text{interconnection}) * (1 + length_\text{percent_added})`
 
+Cable Crossing Cost
+---------
+Optional inputs for both number of cable crossings and unit cost per cable
+crossing.  The default number of cable crossings is 0 and cost per cable
+crossing is $500,000. This cost includes materials, installation, etc. Crossing
+cost is calculated as product of number of crossings and unit cost.
 
-Number of Required Power Transformer and Tranformer Rating
+Number of Required Power Transformer, Tranformer Rating, and Cost
 ---------
-The number of power transformers required is assumed to be equal to the number
+The number of main power transformers (MPT) required is assumed to be equal to the number
 of required export cables. The transformer rating is calculated by dividing the
-windfarm's capacity by the number of power transformers.
-
-
-Shunt Reactors and Reactive Power Compensation
+windfarm's capacity by the number of MPTs. MPTs are only required if the
+export cables are HVAC. The default cost of the MPT is $2.87m per HVAC cable. Therefore, the total MPT cost is
+proportional to the number of cables. Note: Previous versions may have used curve-fits to
+calculate total MPT cost based on the windfarm's capacity. The MPT unit cost ($/cable) can
+be ovewritten by the user by setting (``mpt_unit_cost``) to the desired cost. If the export cables
+are HVDC, then the cost of power transformers will be $0.
+
+Number of Shunt Reactors, Reactive Power Compensation, and Cost
 ---------
 The shunt reactor cost is dependent on the amount of reactive power compensation
-required based on the distance of the substation to shore. There is assumed to be
-one shunt reactor for each HVAC export cable. HVDC export systems do not require
-reactive power compensation, thus the shunt reactor cost is zero for HVDC systems.
-
-
-Number of Required Switchgears
+required based on the distance of the substation to shore. This model assumes
+one shunt reactor for each HVAC export cable. An HVDC export systems do not require
+reactive power compensation. The default cost rate of the shunt reactors is $10k per HVAC cable. The total cost is proportional
+to the number of cables multipled by a cable-specific compensation factor. The default cost rate
+can be overwritten by the user by setting (``shunt_unit_cost``) to the desired cost. The shunt
+reactor cost is $0 for HVDC systems.
+
+Number of Required Switchgears and Cost
 ---------
-The number of shunt reactors required is assumed to be equal to the number of
-required export cables.
+The number of switchgear relays required is assumed to be equal to the number of
+required export cables. Switchgear cost is only necessary if HVAC export cables
+are chosen. The default cost is $4m per cable for HVAC. The default cost can be overwritten by the user by
+setting (``switchgear_cost``) to the desired cost. Switchgear cost is equal to $0 for HVDC export
+cables.
 
+Number of Circuit Breakers and Cost
+---------
+The number of circuit breakers required is assumed to be equal to the number of required
+export cables. Breakers are only necssary if HVDC export cables are chosen. The default cost is
+$10.6m per HVDC cable. The default cost can be overwritten by the user by setting (``dc_breaker_cost``)
+to the desired cost. Breaker cost is $0 for HVAC cables.
 
-Number of Required AC\DC Converters
+Number of Required AC\DC Converters and Cost
 ---------
 AC\DC converters are only required for HVDC export cables. The number of converters
 is assumed to be equal to the number of HVDC export cables.
 
-
-Cable Crossing Cost
+Ancillary System Cost
 ---------
-Optional inputs for both number of cable crossings and unit cost per cable
-crossing.  The default number of cable crossings is 0 and cost per cable
-crossing is $500,000. This cost includes materials, installation, etc. Crossing
-cost is calculated as product of number of crossings and unit cost.
-
+Costs are included such as a backup generator, workspace cost, and miscellous to
+capture any additional features outside the main components. The user can define each
+variable by setting (``backup_gen_cost``), (``workspace_cost``), and (``other_ancillary_cost``).
+
+Assembly Cost (On Land)
+----------
+The majority of the electrical components are located on the offshore substation platform, but
+they must be assembled on land. Therefore, an assembly factor of 7.5% is added to the components cost.
+Those components include switchgear, shut reactors, and ancillary costs. The user can change the
+factor by setting (``topside_assembly_factor``) to the desired percentage.
+
+Substation Topside Mass and Cost
+----------
+We assume that the topside design cost is a fixed amount based on the export cables (either HVDC or HVAC).
+The user can specify the topside cost by setting (``topside_design_cost``). The mass of the topside is
+determined by a curve fit.
+
+Substation Substructure Mass and Cost
+----------
+The mass and cost associated with the substructure of the offshore substation are based on
+curve fits. The topside mass will drive the mass/size of the substructure. Then, the cost of the
+substructure is determined by its mass. The substructure has a default cost rate of $3000 per ton of
+steel. The value can be overwritten by setting (``oss_substructure_cost_rate``) to the desired cost rate.
 
 Onshore Cost
 ---------
 The onshore cost is considered to be the minimum cost of interconnection. This includes
 the major required hardware for a cable connection onshore. For HVDC cables, it includes
 the converter cost, DC breaker cost, and transformer cost. For HVAC, it includes the
-transformer cost and switchgear cost.
-
+transformer cost and switchgear cost. The onshore costs may or may not be included in the BOS
+of the wind farm. Therefore, this cost is not included in the total ``system_capex``
+calculated by ProjectManager.
 
 Design Result
 ---------
diff --git a/examples/3. ProjectManager Introduction.ipynb b/examples/3. ProjectManager Introduction.ipynb
index 5998460f..ea5ed34e 100644
--- a/examples/3. ProjectManager Introduction.ipynb
+++ b/examples/3. ProjectManager Introduction.ipynb
@@ -1,201 +1,263 @@
 {
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "### ProjectManager\n",
-    "\n",
-    "ProjectManager is used to interact with multiple modules within ORBIT. This class allows any combination of modules to be configured and ran together to represent an entire project in ORBIT. It handles the configuration of each module and maps outputs of design modules into installation modules where necessary. This tutorial goes through how to build up a project level configuration using ProjectManager."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from ORBIT import ProjectManager"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [
+  "cells": [
     {
-     "data": {
-      "text/plain": [
-       "{'wtiv': 'dict | str',\n",
-       " 'feeder': 'dict | str (optional)',\n",
-       " 'num_feeders': 'int (optional)',\n",
-       " 'site': {'depth': 'm', 'distance': 'km', 'mean_windspeed': 'm/s'},\n",
-       " 'plant': {'num_turbines': 'int'},\n",
-       " 'turbine': {'hub_height': 'm',\n",
-       "  'rotor_diameter': 'm',\n",
-       "  'rated_windspeed': 'm/s'},\n",
-       " 'port': {'num_cranes': 'int (optional, default: 1)',\n",
-       "  'monthly_rate': 'USD/mo (optional)',\n",
-       "  'name': 'str (optional)'},\n",
-       " 'monopile_design': {'yield_stress': 'Pa (optional)',\n",
-       "  'load_factor': 'float (optional)',\n",
-       "  'material_factor': 'float (optional)',\n",
-       "  'monopile_density': 'kg/m3 (optional)',\n",
-       "  'monopile_modulus': 'Pa (optional)',\n",
-       "  'monopile_tp_connection_thickness': 'm (optional)',\n",
-       "  'transition_piece_density': 'kg/m3 (optional)',\n",
-       "  'transition_piece_thickness': 'm (optional)',\n",
-       "  'transition_piece_length': 'm (optional)',\n",
-       "  'soil_coefficient': 'N/m3 (optional)',\n",
-       "  'air_density': 'kg/m3 (optional)',\n",
-       "  'weibull_scale_factor': 'float (optional)',\n",
-       "  'weibull_shape_factor': 'float (optional)',\n",
-       "  'turb_length_scale': 'm (optional)',\n",
-       "  'monopile_steel_cost': 'USD/t (optional)',\n",
-       "  'tp_steel_cost': 'USD/t (optional)'},\n",
-       " 'project_parameters': {'turbine_capex': '$/kW (optional, default: 1300)',\n",
-       "  'ncf': 'float (optional, default: 0.4)',\n",
-       "  'offtake_price': '$/MWh (optional, default: 80)',\n",
-       "  'project_lifetime': 'yrs (optional, default: 25)',\n",
-       "  'discount_rate': 'yearly (optional, default: .025)',\n",
-       "  'opex_rate': '$/kW/year (optional, default: 150)',\n",
-       "  'construction_insurance': '$/kW (optional, default: 44)',\n",
-       "  'construction_financing': '$/kW (optional, default: 183)',\n",
-       "  'contingency': '$/kW (optional, default: 316)',\n",
-       "  'commissioning': '$/kW (optional, default: 44)',\n",
-       "  'decommissioning': '$/kW (optional, default: 58)',\n",
-       "  'site_auction_price': '$ (optional, default: 100e6)',\n",
-       "  'site_assessment_cost': '$ (optional, default: 50e6)',\n",
-       "  'construction_plan_cost': '$ (optional, default: 1e6)',\n",
-       "  'installation_plan_cost': '$ (optional, default: 0.25e6)'},\n",
-       " 'design_phases': ['MonopileDesign'],\n",
-       " 'install_phases': ['MonopileInstallation'],\n",
-       " 'orbit_version': 'v1.0.4+19.g2ac3a73.dirty'}"
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### ProjectManager\n",
+        "\n",
+        "ProjectManager is used to interact with multiple modules within ORBIT. This class allows any combination of modules to be configured and ran together to represent an entire project in ORBIT. It handles the configuration of each module and maps outputs of design modules into installation modules where necessary. This tutorial goes through how to build up a project level configuration using ProjectManager."
       ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# The compile expected configs for multiple modules within ProjectManager, use the 'compile_input_dict' method:\n",
-    "# In this example, we'll configure ProjectManager to run the MonopileDesign and MonopileInstallation modules.\n",
-    "\n",
-    "ProjectManager.compile_input_dict([\"MonopileDesign\", \"MonopileInstallation\"])"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {},
-   "outputs": [
+    },
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Total Substructure Cost: 258.67 M\n",
-      "Total Installation Cost:  21.88 M\n"
-     ]
-    }
-   ],
-   "source": [
-    "# For simplicity, we are going to ignore the optional 'monopile_design' and 'project_parameters' subdicts.\n",
-    "\n",
-    "config = {\n",
-    "    'wtiv': 'example_wtiv',\n",
-    "    'site': {                   # The inputs required for the design module and\n",
-    "        'depth': 20,            # the installation module are combined into the 'site' subdict\n",
-    "        'distance': 50,\n",
-    "        'mean_windspeed': 9.5\n",
-    "    },\n",
-    "    \n",
-    "    'plant': {\n",
-    "        'num_turbines': 50\n",
-    "    },\n",
-    "    \n",
-    "    'turbine': {\n",
-    "        'rotor_diameter': 220,\n",
-    "        'hub_height': 120,\n",
-    "        'rated_windspeed': 13\n",
-    "    },\n",
-    "    \n",
-    "    # Sizing information for the substructure are not required as they will\n",
-    "    # be calculated by 'MonopileDesign' and passed into 'MonopileInstallation'\n",
-    "    # automatically by 'ProjecManager'.\n",
-    "    \n",
-    "    # --- Module Definitions ---\n",
-    "    'design_phases': ['MonopileDesign'],\n",
-    "    'install_phases': ['MonopileInstallation'],\n",
-    "}\n",
-    "\n",
-    "project = ProjectManager(config)\n",
-    "project.run()\n",
-    "\n",
-    "print(f\"Total Substructure Cost: {project.system_capex/1e6:.2f} M\")\n",
-    "print(f\"Total Installation Cost:  {project.installation_capex/1e6:.2f} M\")"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "#### Weather"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {},
-   "outputs": [
+      "cell_type": "code",
+      "execution_count": 2,
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "from ORBIT import ProjectManager"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 3,
+      "metadata": {},
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "{'wtiv': 'dict | str',\n",
+              " 'feeder': 'dict | str (optional)',\n",
+              " 'num_feeders': 'int (optional)',\n",
+              " 'site': {'depth': 'm', 'distance': 'km', 'mean_windspeed': 'm/s'},\n",
+              " 'plant': {'num_turbines': 'int'},\n",
+              " 'turbine': {'hub_height': 'm',\n",
+              "  'rotor_diameter': 'm',\n",
+              "  'rated_windspeed': 'm/s'},\n",
+              " 'port': {'num_cranes': 'int (optional, default: 1)',\n",
+              "  'monthly_rate': 'USD/mo (optional)',\n",
+              "  'name': 'str (optional)'},\n",
+              " 'monopile_supply_chain': {'enabled': '(optional, default: False)',\n",
+              "  'substructure_delivery_time': 'h (optional, default: 168)',\n",
+              "  'num_substructures_delivered': 'int (optional: default: 1)',\n",
+              "  'substructure_storage': 'int (optional, default: inf)'},\n",
+              " 'monopile_design': {'yield_stress': 'Pa (optional)',\n",
+              "  'load_factor': 'float (optional)',\n",
+              "  'material_factor': 'float (optional)',\n",
+              "  'monopile_density': 'kg/m3 (optional)',\n",
+              "  'monopile_modulus': 'Pa (optional)',\n",
+              "  'monopile_tp_connection_thickness': 'm (optional)',\n",
+              "  'transition_piece_density': 'kg/m3 (optional)',\n",
+              "  'transition_piece_thickness': 'm (optional)',\n",
+              "  'transition_piece_length': 'm (optional)',\n",
+              "  'soil_coefficient': 'N/m3 (optional)',\n",
+              "  'air_density': 'kg/m3 (optional)',\n",
+              "  'weibull_scale_factor': 'float (optional)',\n",
+              "  'weibull_shape_factor': 'float (optional)',\n",
+              "  'turb_length_scale': 'm (optional)',\n",
+              "  'monopile_steel_cost': 'USD/t (optional)',\n",
+              "  'tp_steel_cost': 'USD/t (optional)'},\n",
+              " 'project_parameters': {'turbine_capex': '$/kW (optional, default: 1300)',\n",
+              "  'ncf': 'float (optional, default: 0.4)',\n",
+              "  'offtake_price': '$/MWh (optional, default: 80)',\n",
+              "  'project_lifetime': 'yrs (optional, default: 25)',\n",
+              "  'discount_rate': 'yearly (optional, default: .025)',\n",
+              "  'opex_rate': '$/kW/year (optional, default: 150)',\n",
+              "  'construction_insurance': '$/kW (optional, default: 44)',\n",
+              "  'construction_financing': '$/kW (optional, default: 183)',\n",
+              "  'contingency': '$/kW (optional, default: 316)',\n",
+              "  'commissioning': '$/kW (optional, default: 44)',\n",
+              "  'decommissioning': '$/kW (optional, default: 58)',\n",
+              "  'site_auction_price': '$ (optional, default: 100e6)',\n",
+              "  'site_assessment_cost': '$ (optional, default: 50e6)',\n",
+              "  'construction_plan_cost': '$ (optional, default: 1e6)',\n",
+              "  'installation_plan_cost': '$ (optional, default: 0.25e6)'},\n",
+              " 'design_phases': ['MonopileDesign'],\n",
+              " 'install_phases': ['MonopileInstallation'],\n",
+              " 'orbit_version': 'v1.0.7+112.g52fef86'}"
+            ]
+          },
+          "execution_count": 3,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# The compile expected configs for multiple modules within ProjectManager, use the 'compile_input_dict' method:\n",
+        "# In this example, we'll configure ProjectManager to run the MonopileDesign and MonopileInstallation modules.\n",
+        "\n",
+        "ProjectManager.compile_input_dict([\"MonopileDesign\", \"MonopileInstallation\"])"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 4,
+      "metadata": {},
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "ORBIT library intialized at '/Users/nriccobo/GitHub/ORBIT/library'\n",
+            "Total Substructure Cost: 258.67 M\n",
+            "Total Installation Cost:  25.67 M\n"
+          ]
+        }
+      ],
+      "source": [
+        "# For simplicity, we are going to ignore the optional 'monopile_design' and 'project_parameters' subdicts.\n",
+        "\n",
+        "config = {\n",
+        "    'wtiv': 'example_wtiv',\n",
+        "    'site': {                   # The inputs required for the design module and\n",
+        "        'depth': 20,            # the installation module are combined into the 'site' subdict\n",
+        "        'distance': 50,\n",
+        "        'mean_windspeed': 9.5\n",
+        "    },\n",
+        "\n",
+        "    'plant': {\n",
+        "        'num_turbines': 50\n",
+        "    },\n",
+        "\n",
+        "    'turbine': {\n",
+        "        'rotor_diameter': 220,\n",
+        "        'hub_height': 120,\n",
+        "        'rated_windspeed': 13\n",
+        "    },\n",
+        "\n",
+        "    # Sizing information for the substructure are not required as they will\n",
+        "    # be calculated by 'MonopileDesign' and passed into 'MonopileInstallation'\n",
+        "    # automatically by 'ProjecManager'.\n",
+        "\n",
+        "    # --- Module Definitions ---\n",
+        "    'design_phases': ['MonopileDesign'],\n",
+        "    'install_phases': ['MonopileInstallation'],\n",
+        "}\n",
+        "\n",
+        "project = ProjectManager(config)\n",
+        "project.run()\n",
+        "\n",
+        "print(f\"Total Substructure Cost: {project.system_capex/1e6:.2f} M\")\n",
+        "print(f\"Total Installation Cost:  {project.installation_capex/1e6:.2f} M\")"
+      ]
+    },
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Total Substructure Cost: 258.67 M\n",
-      "Total Installation Cost:  27.95 M\n"
-     ]
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "#### Weather"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 5,
+      "metadata": {},
+      "outputs": [
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "UserWarning: /var/folders/90/1lkt657x3n1cw5x65j3lfgd5406fb8/T/ipykernel_14087/1181267332.py:3\n",
+            "Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format."
+          ]
+        },
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Total Substructure Cost: 258.67 M\n",
+            "Total Installation Cost:  31.62 M\n"
+          ]
+        }
+      ],
+      "source": [
+        "# Weather can be included in the same way as an individual module:\n",
+        "import pandas as pd\n",
+        "weather = pd.read_csv(\"data/example_weather.csv\", parse_dates=['datetime']).set_index(\"datetime\")\n",
+        "\n",
+        "project = ProjectManager(config, weather=weather)\n",
+        "project.run()\n",
+        "\n",
+        "print(f\"Total Substructure Cost: {project.system_capex/1e6:.2f} M\")\n",
+        "print(f\"Total Installation Cost:  {project.installation_capex/1e6:.2f} M\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### Looking inside a module\n",
+        "Look at intermediate variables within a module in two ways.\n",
+        "1. Call the phase of the ProjectManager\n",
+        "2. Run the module on its own and call the variables\n",
+        "\n",
+        "These should yield the same results"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 23,
+      "metadata": {},
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Total Monopile Cost:  $258.67 M\n"
+          ]
+        }
+      ],
+      "source": [
+        "# 1. Call through ProjectManager\n",
+        "project = ProjectManager(config)\n",
+        "project.run()\n",
+        "\n",
+        "print(f\"Total Monopile Cost:  ${project.phases['MonopileDesign'].total_cost/1e6:.2f} M\")"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 24,
+      "metadata": {},
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "Total Monopile Cost:  $258.67 M\n"
+          ]
+        }
+      ],
+      "source": [
+        "# 2. Call through the module\n",
+        "from ORBIT.phases.design import MonopileDesign\n",
+        "\n",
+        "design = MonopileDesign(config)\n",
+        "design.run()\n",
+        "\n",
+        "print(f\"Total Monopile Cost:  ${design.total_cost/1e6:.2f} M\")"
+      ]
+    }
+  ],
+  "metadata": {
+    "kernelspec": {
+      "display_name": "Python 3",
+      "language": "python",
+      "name": "python3"
+    },
+    "language_info": {
+      "codemirror_mode": {
+        "name": "ipython",
+        "version": 3
+      },
+      "file_extension": ".py",
+      "mimetype": "text/x-python",
+      "name": "python",
+      "nbconvert_exporter": "python",
+      "pygments_lexer": "ipython3",
+      "version": "3.8.18"
     }
-   ],
-   "source": [
-    "# Weather can be included in the same way as an individual module:\n",
-    "import pandas as pd\n",
-    "weather = pd.read_csv(\"data/example_weather.csv\", parse_dates=['datetime']).set_index(\"datetime\")\n",
-    "\n",
-    "project = ProjectManager(config, weather=weather)\n",
-    "project.run()\n",
-    "\n",
-    "print(f\"Total Substructure Cost: {project.system_capex/1e6:.2f} M\")\n",
-    "print(f\"Total Installation Cost:  {project.installation_capex/1e6:.2f} M\")"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3",
-   "language": "python",
-   "name": "python3"
   },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.7.3"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+  "nbformat": 4,
+  "nbformat_minor": 4
 }
diff --git a/examples/Example - Parametric Manager.ipynb b/examples/Example - Parametric Manager.ipynb
index 2a17e0ff..ed8220db 100644
--- a/examples/Example - Parametric Manager.ipynb
+++ b/examples/Example - Parametric Manager.ipynb
@@ -1,510 +1,504 @@
 {
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "### ORBIT Example - ParametricManager\n",
-    "\n",
-    "ParametricManager provides a similar interface into ORBIT as ProjectManager but allows for some (or all) inputs to be parameterized. This class is useful for quickly exploring how a module or project scales with certain inputs."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from ORBIT.phases.design import MonopileDesign\n",
-    "\n",
-    "from ORBIT import ParametricManager, ProjectManager"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {},
-   "outputs": [
+  "cells": [
     {
-     "data": {
-      "text/plain": [
-       "{'site': {'depth': 'm', 'mean_windspeed': 'm/s'},\n",
-       " 'plant': {'num_turbines': 'int'},\n",
-       " 'turbine': {'rotor_diameter': 'm',\n",
-       "  'hub_height': 'm',\n",
-       "  'rated_windspeed': 'm/s'},\n",
-       " 'monopile_design': {'yield_stress': 'Pa (optional)',\n",
-       "  'load_factor': 'float (optional)',\n",
-       "  'material_factor': 'float (optional)',\n",
-       "  'monopile_density': 'kg/m3 (optional)',\n",
-       "  'monopile_modulus': 'Pa (optional)',\n",
-       "  'monopile_tp_connection_thickness': 'm (optional)',\n",
-       "  'transition_piece_density': 'kg/m3 (optional)',\n",
-       "  'transition_piece_thickness': 'm (optional)',\n",
-       "  'transition_piece_length': 'm (optional)',\n",
-       "  'soil_coefficient': 'N/m3 (optional)',\n",
-       "  'air_density': 'kg/m3 (optional)',\n",
-       "  'weibull_scale_factor': 'float (optional)',\n",
-       "  'weibull_shape_factor': 'float (optional)',\n",
-       "  'turb_length_scale': 'm (optional)',\n",
-       "  'monopile_steel_cost': 'USD/t (optional)',\n",
-       "  'tp_steel_cost': 'USD/t (optional)'}}"
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### ORBIT Example - ParametricManager\n",
+        "\n",
+        "ParametricManager provides a similar interface into ORBIT as ProjectManager but allows for some (or all) inputs to be parameterized. This class is useful for quickly exploring how a module or project scales with certain inputs."
       ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# For this example we will look at the MonopileDesign module.\n",
-    "MonopileDesign.expected_config"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# The following inputs are the only \"required\" inputs for the MonopileDesign module.\n",
-    "# Thee 'site' inputs are commented out as they will be defined as parametric inputs below.\n",
-    "\n",
-    "base_config = {\n",
-    "#     \"site\": {\n",
-    "#         \"depth\": 20,\n",
-    "#         \"mean_windspeed\": 8\n",
-    "#     }\n",
-    "    \"turbine\": \"12MW_generic\",\n",
-    "    \"plant\": {\n",
-    "        \"num_turbines\": 50\n",
-    "    }\n",
-    "}"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Parametric inputs:\n",
-    "\n",
-    "parameters = {\n",
-    "    \"site.depth\": [20, 40, 60],           # The dot-notation allows you to access nested dictionaries\n",
-    "    \"site.mean_windspeed\": [8, 9, 10]     # These inputs correspond to the 'depth' and 'mean_windspeed' inputs above, which are nested\n",
-    "}                                         # in the 'site' dictionary. "
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Desired results:\n",
-    "# Since there are so many available results in ORBIT, you have to tell ParametricManager which ones\n",
-    "# you are interested in for this parametric run. The syntax for this always follows the \n",
-    "# 'lambda run: run.{output}' format. The {output} can be any output available for the configured module\n",
-    "\n",
-    "results = {\n",
-    "    \"capex\": lambda run: run.total_cost\n",
-    "}"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {},
-   "outputs": [
+    },
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "ORBIT library intialized at '/Users/jnunemak/Fun/repos/ORBIT/library'\n"
-     ]
+      "cell_type": "code",
+      "execution_count": 12,
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "from ORBIT.phases.design import MonopileDesign\n",
+        "\n",
+        "from ORBIT import ParametricManager\n"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### Monopile Design Example\n",
+        "Perform a parametric sweep of site depth and mean wind speed to see the effects on monopile capex."
+      ]
     },
     {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>site.depth</th>\n",
-       "      <th>site.mean_windspeed</th>\n",
-       "      <th>capex</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>20</td>\n",
-       "      <td>8</td>\n",
-       "      <td>2.388521e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <td>40</td>\n",
-       "      <td>9</td>\n",
-       "      <td>3.261239e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>60</td>\n",
-       "      <td>10</td>\n",
-       "      <td>4.289900e+08</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
+      "cell_type": "code",
+      "execution_count": 13,
+      "metadata": {},
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "{'site': {'depth': 'm', 'mean_windspeed': 'm/s'},\n",
+              " 'plant': {'num_turbines': 'int'},\n",
+              " 'turbine': {'rotor_diameter': 'm',\n",
+              "  'hub_height': 'm',\n",
+              "  'rated_windspeed': 'm/s'},\n",
+              " 'monopile_design': {'yield_stress': 'Pa (optional)',\n",
+              "  'load_factor': 'float (optional)',\n",
+              "  'material_factor': 'float (optional)',\n",
+              "  'monopile_density': 'kg/m3 (optional)',\n",
+              "  'monopile_modulus': 'Pa (optional)',\n",
+              "  'monopile_tp_connection_thickness': 'm (optional)',\n",
+              "  'transition_piece_density': 'kg/m3 (optional)',\n",
+              "  'transition_piece_thickness': 'm (optional)',\n",
+              "  'transition_piece_length': 'm (optional)',\n",
+              "  'soil_coefficient': 'N/m3 (optional)',\n",
+              "  'air_density': 'kg/m3 (optional)',\n",
+              "  'weibull_scale_factor': 'float (optional)',\n",
+              "  'weibull_shape_factor': 'float (optional)',\n",
+              "  'turb_length_scale': 'm (optional)',\n",
+              "  'monopile_steel_cost': 'USD/t (optional)',\n",
+              "  'tp_steel_cost': 'USD/t (optional)'}}"
+            ]
+          },
+          "execution_count": 13,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
       ],
-      "text/plain": [
-       "   site.depth  site.mean_windspeed         capex\n",
-       "0          20                    8  2.388521e+08\n",
-       "1          40                    9  3.261239e+08\n",
-       "2          60                   10  4.289900e+08"
+      "source": [
+        "# For this example we will look at the MonopileDesign module.\n",
+        "MonopileDesign.expected_config"
       ]
-     },
-     "execution_count": 9,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# Pass the above definitions into ParametricManager like this:\n",
-    "# Note: I only want to run MonopileDesign so I passed it into module directily.\n",
-    "# If you want to run an entire project (with multiple modules), leave module blank and it will\n",
-    "# automatically run ProjectManager\n",
-    "\n",
-    "parametric = ParametricManager(base_config, parameters, results, module=MonopileDesign)\n",
-    "parametric.run()\n",
-    "\n",
-    "\n",
-    "# By default, ParametricManager doesn't run the product of all parameters and just\n",
-    "# runs the first set of inputs, then the second set of inputs, etc.\n",
-    "# In this case, there will only be 3 results\n",
-    "parametric.results"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {},
-   "outputs": [
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 14,
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "# The following inputs are the only \"required\" inputs for the MonopileDesign module.\n",
+        "# Thee 'site' inputs are commented out as they will be defined as parametric inputs below.\n",
+        "\n",
+        "base_config = {\n",
+        "#     \"site\": {\n",
+        "#         \"depth\": 20,\n",
+        "#         \"mean_windspeed\": 8\n",
+        "#     }\n",
+        "    \"turbine\": \"12MW_generic\",\n",
+        "    \"plant\": {\n",
+        "        \"num_turbines\": 50\n",
+        "    }\n",
+        "}"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 15,
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "# Parametric inputs:\n",
+        "\n",
+        "parameters = {\n",
+        "    \"site.depth\": [20, 40, 60],           # The dot-notation allows you to access nested dictionaries\n",
+        "    \"site.mean_windspeed\": [8, 9, 10]     # These inputs correspond to the 'depth' and 'mean_windspeed' inputs above, which are nested\n",
+        "}                                         # in the 'site' dictionary."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 16,
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "# Desired results:\n",
+        "# Since there are so many available results in ORBIT, you have to tell ParametricManager which ones\n",
+        "# you are interested in for this parametric run. The syntax for this always follows the\n",
+        "# 'lambda run: run.{output}' format. The {output} can be any output available for the configured module\n",
+        "\n",
+        "results = {\n",
+        "    \"capex\": lambda run: run.total_cost\n",
+        "}"
+      ]
+    },
     {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>site.depth</th>\n",
-       "      <th>site.mean_windspeed</th>\n",
-       "      <th>capex</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>20</td>\n",
-       "      <td>8</td>\n",
-       "      <td>2.388521e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <td>20</td>\n",
-       "      <td>9</td>\n",
-       "      <td>2.545394e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>20</td>\n",
-       "      <td>10</td>\n",
-       "      <td>2.705817e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <td>40</td>\n",
-       "      <td>8</td>\n",
-       "      <td>3.062888e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>4</th>\n",
-       "      <td>40</td>\n",
-       "      <td>9</td>\n",
-       "      <td>3.261239e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>5</th>\n",
-       "      <td>40</td>\n",
-       "      <td>10</td>\n",
-       "      <td>3.463884e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>6</th>\n",
-       "      <td>60</td>\n",
-       "      <td>8</td>\n",
-       "      <td>3.798072e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>7</th>\n",
-       "      <td>60</td>\n",
-       "      <td>9</td>\n",
-       "      <td>4.041444e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>8</th>\n",
-       "      <td>60</td>\n",
-       "      <td>10</td>\n",
-       "      <td>4.289900e+08</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
+      "cell_type": "code",
+      "execution_count": 17,
+      "metadata": {},
+      "outputs": [
+        {
+          "data": {
+            "text/html": [
+              "<div>\n",
+              "<style scoped>\n",
+              "    .dataframe tbody tr th:only-of-type {\n",
+              "        vertical-align: middle;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe tbody tr th {\n",
+              "        vertical-align: top;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe thead th {\n",
+              "        text-align: right;\n",
+              "    }\n",
+              "</style>\n",
+              "<table border=\"1\" class=\"dataframe\">\n",
+              "  <thead>\n",
+              "    <tr style=\"text-align: right;\">\n",
+              "      <th></th>\n",
+              "      <th>site.depth</th>\n",
+              "      <th>site.mean_windspeed</th>\n",
+              "      <th>capex</th>\n",
+              "    </tr>\n",
+              "  </thead>\n",
+              "  <tbody>\n",
+              "    <tr>\n",
+              "      <th>0</th>\n",
+              "      <td>20</td>\n",
+              "      <td>8</td>\n",
+              "      <td>2.388521e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>1</th>\n",
+              "      <td>40</td>\n",
+              "      <td>9</td>\n",
+              "      <td>3.261239e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>2</th>\n",
+              "      <td>60</td>\n",
+              "      <td>10</td>\n",
+              "      <td>4.289900e+08</td>\n",
+              "    </tr>\n",
+              "  </tbody>\n",
+              "</table>\n",
+              "</div>"
+            ],
+            "text/plain": [
+              "   site.depth  site.mean_windspeed         capex\n",
+              "0          20                    8  2.388521e+08\n",
+              "1          40                    9  3.261239e+08\n",
+              "2          60                   10  4.289900e+08"
+            ]
+          },
+          "execution_count": 17,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
       ],
-      "text/plain": [
-       "   site.depth  site.mean_windspeed         capex\n",
-       "0          20                    8  2.388521e+08\n",
-       "1          20                    9  2.545394e+08\n",
-       "2          20                   10  2.705817e+08\n",
-       "3          40                    8  3.062888e+08\n",
-       "4          40                    9  3.261239e+08\n",
-       "5          40                   10  3.463884e+08\n",
-       "6          60                    8  3.798072e+08\n",
-       "7          60                    9  4.041444e+08\n",
-       "8          60                   10  4.289900e+08"
+      "source": [
+        "# Pass the above definitions into ParametricManager like this:\n",
+        "# Note: I only want to run MonopileDesign so I passed it into module directily.\n",
+        "# If you want to run an entire project (with multiple modules), leave module blank and it will\n",
+        "# automatically run ProjectManager\n",
+        "\n",
+        "parametric = ParametricManager(base_config, parameters, results, module=MonopileDesign)\n",
+        "parametric.run()\n",
+        "\n",
+        "\n",
+        "# By default, ParametricManager doesn't run the product of all parameters and just\n",
+        "# runs the first set of inputs, then the second set of inputs, etc.\n",
+        "# In this case, there will only be 3 results\n",
+        "parametric.results"
       ]
-     },
-     "execution_count": 10,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# To configure ParametricManager to run the product of all inputs, pass 'product=True'\n",
-    "# This will result in 3x3 results as each combination is ran\n",
-    "parametric = ParametricManager(base_config, parameters, results, module=MonopileDesign, product=True)\n",
-    "parametric.run()\n",
-    "\n",
-    "parametric.results"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 11,
-   "metadata": {},
-   "outputs": [
+    },
     {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "10 runs elapsed time: 0.06s\n",
-      "27 runs estimated time: 0.15s\n"
-     ]
+      "cell_type": "code",
+      "execution_count": 18,
+      "metadata": {},
+      "outputs": [
+        {
+          "data": {
+            "text/html": [
+              "<div>\n",
+              "<style scoped>\n",
+              "    .dataframe tbody tr th:only-of-type {\n",
+              "        vertical-align: middle;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe tbody tr th {\n",
+              "        vertical-align: top;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe thead th {\n",
+              "        text-align: right;\n",
+              "    }\n",
+              "</style>\n",
+              "<table border=\"1\" class=\"dataframe\">\n",
+              "  <thead>\n",
+              "    <tr style=\"text-align: right;\">\n",
+              "      <th></th>\n",
+              "      <th>site.depth</th>\n",
+              "      <th>site.mean_windspeed</th>\n",
+              "      <th>capex</th>\n",
+              "    </tr>\n",
+              "  </thead>\n",
+              "  <tbody>\n",
+              "    <tr>\n",
+              "      <th>0</th>\n",
+              "      <td>20</td>\n",
+              "      <td>8</td>\n",
+              "      <td>2.388521e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>1</th>\n",
+              "      <td>20</td>\n",
+              "      <td>9</td>\n",
+              "      <td>2.545394e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>2</th>\n",
+              "      <td>20</td>\n",
+              "      <td>10</td>\n",
+              "      <td>2.705817e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>3</th>\n",
+              "      <td>40</td>\n",
+              "      <td>8</td>\n",
+              "      <td>3.062888e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>4</th>\n",
+              "      <td>40</td>\n",
+              "      <td>9</td>\n",
+              "      <td>3.261239e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>5</th>\n",
+              "      <td>40</td>\n",
+              "      <td>10</td>\n",
+              "      <td>3.463884e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>6</th>\n",
+              "      <td>60</td>\n",
+              "      <td>8</td>\n",
+              "      <td>3.798072e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>7</th>\n",
+              "      <td>60</td>\n",
+              "      <td>9</td>\n",
+              "      <td>4.041444e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>8</th>\n",
+              "      <td>60</td>\n",
+              "      <td>10</td>\n",
+              "      <td>4.289900e+08</td>\n",
+              "    </tr>\n",
+              "  </tbody>\n",
+              "</table>\n",
+              "</div>"
+            ],
+            "text/plain": [
+              "   site.depth  site.mean_windspeed         capex\n",
+              "0          20                    8  2.388521e+08\n",
+              "1          20                    9  2.545394e+08\n",
+              "2          20                   10  2.705817e+08\n",
+              "3          40                    8  3.062888e+08\n",
+              "4          40                    9  3.261239e+08\n",
+              "5          40                   10  3.463884e+08\n",
+              "6          60                    8  3.798072e+08\n",
+              "7          60                    9  4.041444e+08\n",
+              "8          60                   10  4.289900e+08"
+            ]
+          },
+          "execution_count": 18,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "# To configure ParametricManager to run the product of all inputs, pass 'product=True'\n",
+        "# This will result in 3x3 results as each combination is ran\n",
+        "parametric = ParametricManager(base_config, parameters, results, module=MonopileDesign, product=True)\n",
+        "parametric.run()\n",
+        "\n",
+        "parametric.results"
+      ]
     },
     {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>site.depth</th>\n",
-       "      <th>site.mean_windspeed</th>\n",
-       "      <th>monopile_design.soil_coefficient</th>\n",
-       "      <th>capex</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>60</td>\n",
-       "      <td>8</td>\n",
-       "      <td>4000000</td>\n",
-       "      <td>3.798072e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>1</th>\n",
-       "      <td>40</td>\n",
-       "      <td>9</td>\n",
-       "      <td>4500000</td>\n",
-       "      <td>3.240537e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>40</td>\n",
-       "      <td>9</td>\n",
-       "      <td>4000000</td>\n",
-       "      <td>3.261239e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <td>40</td>\n",
-       "      <td>8</td>\n",
-       "      <td>4000000</td>\n",
-       "      <td>3.062888e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>4</th>\n",
-       "      <td>20</td>\n",
-       "      <td>10</td>\n",
-       "      <td>4500000</td>\n",
-       "      <td>2.685895e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>5</th>\n",
-       "      <td>20</td>\n",
-       "      <td>9</td>\n",
-       "      <td>4000000</td>\n",
-       "      <td>2.545394e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>6</th>\n",
-       "      <td>60</td>\n",
-       "      <td>10</td>\n",
-       "      <td>5000000</td>\n",
-       "      <td>4.243511e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>7</th>\n",
-       "      <td>60</td>\n",
-       "      <td>9</td>\n",
-       "      <td>4000000</td>\n",
-       "      <td>4.041444e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>8</th>\n",
-       "      <td>40</td>\n",
-       "      <td>8</td>\n",
-       "      <td>5000000</td>\n",
-       "      <td>3.027043e+08</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>9</th>\n",
-       "      <td>20</td>\n",
-       "      <td>8</td>\n",
-       "      <td>5000000</td>\n",
-       "      <td>2.356558e+08</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
+      "cell_type": "code",
+      "execution_count": 19,
+      "metadata": {},
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "10 runs elapsed time: 0.02s\n",
+            "27 runs estimated time: 0.06s\n"
+          ]
+        },
+        {
+          "data": {
+            "text/html": [
+              "<div>\n",
+              "<style scoped>\n",
+              "    .dataframe tbody tr th:only-of-type {\n",
+              "        vertical-align: middle;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe tbody tr th {\n",
+              "        vertical-align: top;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe thead th {\n",
+              "        text-align: right;\n",
+              "    }\n",
+              "</style>\n",
+              "<table border=\"1\" class=\"dataframe\">\n",
+              "  <thead>\n",
+              "    <tr style=\"text-align: right;\">\n",
+              "      <th></th>\n",
+              "      <th>site.depth</th>\n",
+              "      <th>site.mean_windspeed</th>\n",
+              "      <th>monopile_design.soil_coefficient</th>\n",
+              "      <th>capex</th>\n",
+              "    </tr>\n",
+              "  </thead>\n",
+              "  <tbody>\n",
+              "    <tr>\n",
+              "      <th>0</th>\n",
+              "      <td>40</td>\n",
+              "      <td>9</td>\n",
+              "      <td>4000000</td>\n",
+              "      <td>3.261239e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>1</th>\n",
+              "      <td>60</td>\n",
+              "      <td>9</td>\n",
+              "      <td>4000000</td>\n",
+              "      <td>4.041444e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>2</th>\n",
+              "      <td>60</td>\n",
+              "      <td>8</td>\n",
+              "      <td>4000000</td>\n",
+              "      <td>3.798072e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>3</th>\n",
+              "      <td>20</td>\n",
+              "      <td>8</td>\n",
+              "      <td>4500000</td>\n",
+              "      <td>2.371472e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>4</th>\n",
+              "      <td>20</td>\n",
+              "      <td>9</td>\n",
+              "      <td>4500000</td>\n",
+              "      <td>2.526935e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>5</th>\n",
+              "      <td>60</td>\n",
+              "      <td>8</td>\n",
+              "      <td>5000000</td>\n",
+              "      <td>3.758376e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>6</th>\n",
+              "      <td>40</td>\n",
+              "      <td>10</td>\n",
+              "      <td>5000000</td>\n",
+              "      <td>3.421996e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>7</th>\n",
+              "      <td>40</td>\n",
+              "      <td>8</td>\n",
+              "      <td>5000000</td>\n",
+              "      <td>3.027043e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>8</th>\n",
+              "      <td>40</td>\n",
+              "      <td>8</td>\n",
+              "      <td>4000000</td>\n",
+              "      <td>3.062888e+08</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>9</th>\n",
+              "      <td>60</td>\n",
+              "      <td>9</td>\n",
+              "      <td>5000000</td>\n",
+              "      <td>3.998461e+08</td>\n",
+              "    </tr>\n",
+              "  </tbody>\n",
+              "</table>\n",
+              "</div>"
+            ],
+            "text/plain": [
+              "   site.depth  site.mean_windspeed  monopile_design.soil_coefficient  \\\n",
+              "0          40                    9                           4000000   \n",
+              "1          60                    9                           4000000   \n",
+              "2          60                    8                           4000000   \n",
+              "3          20                    8                           4500000   \n",
+              "4          20                    9                           4500000   \n",
+              "5          60                    8                           5000000   \n",
+              "6          40                   10                           5000000   \n",
+              "7          40                    8                           5000000   \n",
+              "8          40                    8                           4000000   \n",
+              "9          60                    9                           5000000   \n",
+              "\n",
+              "          capex  \n",
+              "0  3.261239e+08  \n",
+              "1  4.041444e+08  \n",
+              "2  3.798072e+08  \n",
+              "3  2.371472e+08  \n",
+              "4  2.526935e+08  \n",
+              "5  3.758376e+08  \n",
+              "6  3.421996e+08  \n",
+              "7  3.027043e+08  \n",
+              "8  3.062888e+08  \n",
+              "9  3.998461e+08  "
+            ]
+          },
+          "execution_count": 19,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
       ],
-      "text/plain": [
-       "   site.depth  site.mean_windspeed  monopile_design.soil_coefficient  \\\n",
-       "0          60                    8                           4000000   \n",
-       "1          40                    9                           4500000   \n",
-       "2          40                    9                           4000000   \n",
-       "3          40                    8                           4000000   \n",
-       "4          20                   10                           4500000   \n",
-       "5          20                    9                           4000000   \n",
-       "6          60                   10                           5000000   \n",
-       "7          60                    9                           4000000   \n",
-       "8          40                    8                           5000000   \n",
-       "9          20                    8                           5000000   \n",
-       "\n",
-       "          capex  \n",
-       "0  3.798072e+08  \n",
-       "1  3.240537e+08  \n",
-       "2  3.261239e+08  \n",
-       "3  3.062888e+08  \n",
-       "4  2.685895e+08  \n",
-       "5  2.545394e+08  \n",
-       "6  4.243511e+08  \n",
-       "7  4.041444e+08  \n",
-       "8  3.027043e+08  \n",
-       "9  2.356558e+08  "
+      "source": [
+        "# If you are configuring many parameters it can take a long time to run, especially if weather is turned on.\n",
+        "# To get an idea of how long it'll take, you can run the .preview() method:\n",
+        "\n",
+        "parameters = {\n",
+        "    \"site.depth\": [20, 40, 60],\n",
+        "    \"site.mean_windspeed\": [8, 9, 10],\n",
+        "    \"monopile_design.soil_coefficient\": [4000000, 4500000, 5000000]\n",
+        "}\n",
+        "\n",
+        "parametric = ParametricManager(base_config, parameters, results, module=MonopileDesign, product=True)\n",
+        "parametric.preview()"
       ]
-     },
-     "execution_count": 11,
-     "metadata": {},
-     "output_type": "execute_result"
     }
-   ],
-   "source": [
-    "# If you are configuring many parameters it can take a long time to run, especially if weather is turned on.\n",
-    "# To get an idea of how long it'll take, you can run the .preview() method:\n",
-    "\n",
-    "parameters = {\n",
-    "    \"site.depth\": [20, 40, 60],\n",
-    "    \"site.mean_windspeed\": [8, 9, 10],\n",
-    "    \"monopile_design.soil_coefficient\": [4000000, 4500000, 5000000]\n",
-    "}      \n",
-    "\n",
-    "parametric = ParametricManager(base_config, parameters, results, module=MonopileDesign, product=True)\n",
-    "parametric.preview()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3",
-   "language": "python",
-   "name": "python3"
+  ],
+  "metadata": {
+    "kernelspec": {
+      "display_name": "Python 3",
+      "language": "python",
+      "name": "python3"
+    },
+    "language_info": {
+      "codemirror_mode": {
+        "name": "ipython",
+        "version": 3
+      },
+      "file_extension": ".py",
+      "mimetype": "text/x-python",
+      "name": "python",
+      "nbconvert_exporter": "python",
+      "pygments_lexer": "ipython3",
+      "version": "3.8.18"
+    }
   },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.7.3"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+  "nbformat": 4,
+  "nbformat_minor": 4
 }
diff --git a/examples/Example - Using HVDC or HVAC.ipynb b/examples/Example - Using HVDC or HVAC.ipynb
new file mode 100644
index 00000000..4618d10e
--- /dev/null
+++ b/examples/Example - Using HVDC or HVAC.ipynb
@@ -0,0 +1,359 @@
+{
+  "cells": [
+    {
+      "cell_type": "markdown",
+      "id": "f5c53391-7926-4fbe-bbd2-53c4d1bf1dd5",
+      "metadata": {},
+      "source": [
+        "### ORBIT Example - Using HVDC or HVAC Example"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "e77f95a5-e7bb-4367-8969-c3f179b862a4",
+      "metadata": {},
+      "source": [
+        "Component or technology decisions have an impact on a wind project's CapEx. This example will provide a basic setup to compare how different project sizes, export cable types (HVDC or HVDC), distances to shore, etc. effect project costs, this is a very useful tool.\n",
+        "\n",
+        "*NOTE: This example uses a test module: `ElectricalDesign` and therefore you must set your branch to dev*"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "f472fe73-2ebd-4754-b693-81e2f1d14a77",
+      "metadata": {},
+      "source": [
+        "### Import Dependencies"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "9ffde11c-6f22-4c15-8b60-3f06e0c2c00e",
+      "metadata": {},
+      "source": [
+        "Include path to ORBIT repo and import parametric manager and any modules used for analysis. For this example, we will be running the `ElectricalDesign` module."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 64,
+      "id": "a906c1f3-c0a7-4285-abf5-882d4d5f89e7",
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "from ORBIT.phases.design import ElectricalDesign\n",
+        "\n",
+        "from ORBIT import ProjectManager, ParametricManager\n",
+        "\n",
+        "import numpy as np\n",
+        "from copy import deepcopy\n",
+        "\n",
+        "import matplotlib.pyplot as plt\n",
+        "import pandas as pd"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "b6e56587-72fc-445c-b289-d4d6b19a3079",
+      "metadata": {},
+      "source": [
+        "### Create Config"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "3792651c-c192-4b1a-ac76-8452dd155b63",
+      "metadata": {},
+      "source": [
+        "Config must include all required variables except those you plan to vary. In this example, we will be manually vary the cable type and then use the `ParametricManager` to vary cable type and plant capacity."
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 65,
+      "id": "2cc12a2f-6192-40a3-9876-346495655bc9",
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "base_config = {\n",
+        "    'export_cable_install_vessel': 'example_cable_lay_vessel',\n",
+        "    'site': {\n",
+        "        'distance': 100,\n",
+        "        'depth': 20,\n",
+        "        'distance_to_landfall': 50\n",
+        "    },\n",
+        "    'plant': {\n",
+        "        'capacity': 1000\n",
+        "    },\n",
+        "    'turbine': \"12MW_generic\",\n",
+        "    'oss_install_vessel': 'example_heavy_lift_vessel',\n",
+        "    'feeder': 'future_feeder',\n",
+        "    'design_phases': [\n",
+        "        'ElectricalDesign',\n",
+        "    ],\n",
+        "    'install_phases': [\n",
+        "        'ExportCableInstallation',\n",
+        "        'OffshoreSubstationInstallation'\n",
+        "    ],\n",
+        "\n",
+        "# Commented out because we will vary these manually\n",
+        "#     'export_system_design': {\n",
+        "#         'cables': 'XLPE_500mm_220kV',\n",
+        "#     }\n",
+        "}"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### HVAC Export Cables\n",
+        "\n",
+        "Add HVAC export cables to the config "
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 66,
+      "metadata": {},
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "OffshoreSubstationInstallation:\n",
+            "\t Warning: 'Feeder 0' Cargo Mass Capacity Exceeded\n",
+            "Total CapEx per kW: $2507.12 \n"
+          ]
+        },
+        {
+          "data": {
+            "text/plain": [
+              "{'Export System': 301153600.0,\n",
+              " 'Offshore Substation': 47655941.13840648,\n",
+              " 'Export System Installation': 48563809.98096469,\n",
+              " 'Offshore Substation Installation': 3098929.2998477924,\n",
+              " 'Turbine': 1310400000,\n",
+              " 'Soft': 645000000,\n",
+              " 'Project': 151250000.0}"
+            ]
+          },
+          "execution_count": 66,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "hvac_config = deepcopy(base_config)\n",
+        "\n",
+        "hvac_config[\"export_system_design\"] = {\n",
+        "            'cables': 'XLPE_1000mm_220kV',\n",
+        "     }\n",
+        "\n",
+        "hvac_project = ProjectManager(hvac_config)\n",
+        "hvac_project.run()\n",
+        "\n",
+        "print(f\"Total CapEx per kW: ${hvac_project.total_capex_per_kw:.2f} \")\n",
+        "\n",
+        "hvac_project.capex_breakdown"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "### HVDC Export Cables\n",
+        "\n",
+        "Add HVDC export cables to the config"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 67,
+      "metadata": {},
+      "outputs": [
+        {
+          "name": "stdout",
+          "output_type": "stream",
+          "text": [
+            "OffshoreSubstationInstallation:\n",
+            "\t Warning: 'Feeder 0' Cargo Mass Capacity Exceeded\n",
+            "Total CapEx per kW: $2370.48 \n"
+          ]
+        },
+        {
+          "data": {
+            "text/plain": [
+              "{'Export System': 87801120.0,\n",
+              " 'Offshore Substation': 160151200.0,\n",
+              " 'Export System Installation': 12778131.303180292,\n",
+              " 'Offshore Substation Installation': 3098929.2998477924,\n",
+              " 'Turbine': 1310400000,\n",
+              " 'Soft': 645000000,\n",
+              " 'Project': 151250000.0}"
+            ]
+          },
+          "execution_count": 67,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "hvdc_config = deepcopy(base_config)\n",
+        "\n",
+        "hvdc_config[\"export_system_design\"] = {\n",
+        "            'cables': 'HVDC_2000mm_320kV',\n",
+        "     }\n",
+        "\n",
+        "hvdc_project = ProjectManager(hvdc_config)\n",
+        "hvdc_project.run()\n",
+        "\n",
+        "print(f\"Total CapEx per kW: ${hvdc_project.total_capex_per_kw:.2f} \")\n",
+        "\n",
+        "hvdc_project.capex_breakdown"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "47a9f8f7-b725-4857-8277-a38d5470cedd",
+      "metadata": {},
+      "source": [
+        "## Use Parametric Manager to compare HVDC and HVAC\n",
+        "From the two examples above, we see that HVDC is more cost effective than HVAC. Note that the HVDC export system (cables) costs nearly 30% of the HVAC cables. However, the Offshore Substation (OSS) is over 3x the cost of an HVAC OSS. To compare this sensitivity and see if there is an point that these technologies cross we'll use `ParametricManager` and sweep each cable for a range of plant capacities. "
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 68,
+      "id": "5cc31e1a-f39b-44ad-97ce-3ebf96486fa4",
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "parameters = {\n",
+        "    'export_system_design.cables': ['XLPE_1000mm_220kV', 'HVDC_2000mm_320kV'],\n",
+        "    'plant.capacity': np.arange(100,2100,100)\n",
+        "}"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "7775629d-afd8-4ce2-bfd4-a70c7f5149a4",
+      "metadata": {},
+      "source": [
+        "### Define Outputs of Interest"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "786d8e8f-a748-4286-87a6-922c47e4f902",
+      "metadata": {},
+      "source": [
+        "Here in the results dictionary, define which variables you would like reported in the output data frame. "
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 69,
+      "id": "0d3536a9-0cc9-4351-a0ac-b25e244fcb26",
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "results = {\n",
+        "    'cable_cost': lambda run: run.total_cable_cost,\n",
+        "    'oss_cost': lambda run: run.substation_cost,\n",
+        "    'num_cables': lambda run: run.num_cables,\n",
+        "    'num_substations': lambda run: run.num_substations,\n",
+        "}"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "23688759-8861-42a5-b749-3650d64a6215",
+      "metadata": {},
+      "source": [
+        "### Run ParametricManager and See Results"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 90,
+      "id": "9d32906d-d907-4bd6-9714-33f994aa0061",
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "parametric = ParametricManager(base_config, parameters, results, module = ElectricalDesign, product=True)\n",
+        "parametric.run()\n",
+        "parametric.results"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 86,
+      "metadata": {},
+      "outputs": [
+        {
+          "data": {
+            "image/png": "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AADWemupea2/uhHBGtwuxqI0cDesyQHAZPjw4XriiSdkGIa2bt0qSWrdurU6dOhwUeOkpaVpy5YtjuPMzEwdP35cGzdu1LfffqvVq1c7zt18882aPn16uWO1adNGn376qYYOHaozZ87o97//vd566y3deeed6tixo+rUqaOsrCzt379fixYt0vz585WRkVHueAAAAPBMvx3O1OLt5l337k9squAAFqfHWTQ5AJg0atRIPXv21JIlSxy14tkdF+OJJ57QE088UeE1jRs31uOPP67x48dfcLz+/ftr1apVmjhxolatWqUtW7aYmigl1a5dW3/7298UERFx0dkBAADgnt5eZp7FERkWqLsSGlmUBu6IJgeAUkaNGuVocvj5+Wn48OGXNV5AQICqV6+uGjVqqGnTpurYsaN69uypvn37ys+v8k/NXXXVVVq5cqV+/PFHffHFF1q+fLkOHjyoEydOKCwsTPXr11eHDh100003afDgwQoJCbms3AAAAHAfB05k68tNB021UZ2bqFow39biHH41AB6mZ8+eMgxDdru90o9kzJgxQzNmzKj0Z4waNUqjRo266GyjR4/W6NGjL/p9F+v6669nK1kAAAAf887yvSqyG47jsCB/je7SxLpAcEssPAoAAAAAcGvHMvP0SdIBU+2uhEaqWS3IokRwVzQ5AAAAAABubfqqZOUVnttdL9DfprGJcRYmgruiyQEAAAAAcFsZuQWavWafqTb42hjVrxFqUSK4M5ocAAAAAAC3NWvNPmXmFTqObTZpfI94CxPBnflsk8Nms1Xqv549e15wrIULF2rw4MGKjY1VcHCwYmNjNXjwYC1cuLDSeQoLC/X2228rMTFRderUUWhoqOLj4zV+/Hht3br1Mr5SAAAAAPBMuQVFem9VsqnWv209xdcJtygR3B27q1wGu92ucePGadq0aaZ6Wlqa0tLSNH/+fI0dO1ZTpkypcJvM9PR0DRgwQBs2bDDV9+7dq3feeUczZ87U66+/rrFjx1bJ1wEAAAAA7mhu0gGln8k31Sb2bGZRGngCn29yTJgwQRMnTiz3fLVq1co999e//tXR4Lj22mv15z//WfHx8dqzZ4/+9a9/aePGjZo6darq1Kmj559/vswxioqKNHjwYEeD47bbbtP999+vWrVqad26dXruued09OhRjR8/XjExMerfv/9lfLUAAAAA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/LIkKSAgwHR9saioKL344ouSpFOnTmnq1KkXzA4AgCebtXaf8gvPPQYa6G/TqM5NrAsE95c03bxtbGCY1I5tYwHAF1nyI5HCwkL9/PPP2rx5s06cOCFJqlWrltq2bat27dopMDDQililVK9eXZKUm5tb6tz8+fMlSREREbrtttvKfH9sbKz69Omj7777Tj/88IMyMzMdY0pSZmamfvjhB0lSnz59FBtb9jTc2267TREREcrIyNC8efP06KOPXs6XBQCA28otKNKsNftMtYFXxyg6ovy1reDjCvOkn94z164aKoUy8xUAfJFLmxxZWVl69tlnNW3aNEdzo6SaNWtqzJgxeuKJJ0wNAVf77bff9Msvv0iSWrVqZTqXn5+v9evXS5I6d+6soKCgcsfp0aOHvvvuO+Xl5SkpKUm9evVynNuwYYPy8/Md15UnKChInTp10qJFi7RhwwYVFBS4TSMIAABnmr8xTcez8k01to1FhcrcNna8NVkAAJZzWZPjt99+04033qj9+/dXuD3siRMn9PLLL2vOnDn67rvvHI+MuEJ2drbS0tK0YMEC/etf/1Jh4dlpjw899JDpup07d6qoqEhS6QZISeef3759u6nJsW3btjKvK2+cRYsWqbCwULt27VLr1q0r9TUVS01NrfD8oUOHHK9zcnKUk5NzUePD9c6fYVTWbCO4L+6d5+LeVS3DMPTu8j2mWuemNdUkMtApfy9x/zxXuffOMBS85g3T89dFjbspPyJO4t8yboHfd56Le+fZPOX+VcX3nS5pcpw+fVq9e/fWoUOHZBiG2rZtq1GjRikhIUF1657d7/7IkSPasGGDZs6cqc2bN2v//v3q06ePtmzZoho1alRZthkzZujee+8t9/xjjz2mu+++21Q7v2FQ3iMmxRo2bOh4feDAAaeNc7FNjvPffyHLly8vtcYI3Nvy5cutjoBLxL3zXNw759t20qY96ea1qa4OSteiRYuc/lncP891/r2rmbVL3Q//ajqf5Ndeh6vg1wwuH7/vPBf3zrO58/1LT093+pguWXj0xRdf1MGDByVJzz77rDZt2qQ//elPSkxMVIsWLdSiRQslJibqj3/8o3755Rc999xzkqSDBw86Ft10tWuuuUbr16/XP//5T9lsNtO5zMxMx+vw8PAKx6lWrZrj9ZkzZ6pkHAAAvMGSQ+a/b+uFGmoVWf7s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9cWJEyfw+eefIyoqCj4+PnBxcUGHDh0wa9YsnD17FjNnznxIn4rob7OiO9RaS4aIiIiIiMgSNdqRHJs2bao1JaU+Ro4ciZEjR9arDAcHB8yZMwdz5swxUa2I6qdHGy8M69rS3NUgIiIiIiIySKMNcpB1mjMgyNxVsBjyKjmys2sWCG3fvj0cHE3bnQObuWLUPwLgYM8BX0REREREZB0Y5CCrIZPJ8PLwUHNXw2KUlZUhKSkLADB0cBBcXV3NXCMiIiIiIiLz4k+0RERERERERGQTGOQgIiIiIiIiIpvAIAcRERERERER2QQGOYiIiIiIiIjIJjDIQUREREREREQ2gUEOIiIiIiIiIrIJDHIQERERERERkU1gkIOIiIiIiIiIbAKDHERERERERERkExjkICIiIiIiIiKbwCAHEREREREREdkEBjmIiIiIiIiIyCYwyEFERERERERENoFBDiIiIiIiIiKyCQxyEBEREREREZFNYJCDiIiIiIiIiGwCgxxEREREREREZBMY5CAiIiIiIiIim8AgBxERERERERHZBAY5iIiIiIiIiMgmMMhBRERERERERDaBQQ4iIiIiIiIisgkO5q4AWQa5XC49zs/PN2NNyFBlZWUoLCwEAOTm5sLV1dXMNSJDse2sF9vOurH9rBfbznqx7awX2866WUv7qV57ql6T1geDHAQAKCgokB737NnTjDUhIiIiIiKixqagoADt2rWrdzmcrkJERERERERENkEmhBDmrgSZX3l5Oc6fPw8AaN68ORwcOMjH0uXn50ujblJTU+Hv72/mGpGh2HbWi21n3dh+1ottZ73YdtaLbWfdrKX95HK5NKsgLCwMLi4u9S6TV7IEAHBxcUFkZKS5q0FG8vf3R2BgoLmrQUZg21kvtp11Y/tZL7ad9WLbWS+2nXWz9PYzxRQVVZyuQkREREREREQ2gUEOIiIiIiIiIrIJDHIQERERERERkU1gkIOIiIiIiIiIbAKDHERERERERERkExjkICIiIiIiIiKbwCAHEREREREREdkEmRBCmLsSRERERERERET1xZEcRERERERERGQTGOQgIiIiIiIiIpvAIAcRERERERER2QQGOYiIiIiIiIjIJjDIQUREREREREQ2gUEOIiIiIiIiIrIJDHIQERERERERkU1gkIOIiIiIiIiIbAKDHERERERERERkExjkICIiIiIiIiKbwCAHUQM7c+YM3nrrLQwdOhSBgYFwdnaGh4cHQkJCMG3aNBw/flxvGZs2bYJMJjPo36ZNm/SWd//+faxYsQKRkZHw9vaGu7s7QkNDsWDBAvz+++8m+NS2w9D9PmDAAL1lffvtt4iNjZX+DgIDAxEbG4tvv/3W4PrI5XKsXr0a0dHRaN68OVxdXREUFIT4+Hikp6fX45PalgEDBhjcdsp/ycnJamWw3zWMW7du4eDBg1iyZAlGjBgBX19faT9OnTq1zuVZUr8qLCzEkiVL8I9//AOenp7w9PTEP/7xDyxZsgS3b9+u82ezNKZou/v372PPnj2YM2cOIiMj0axZMzg6OsLHxwd9+vTBG2+8gZs3b+otpy593BAXLlxAfHw8goKC4OrqiubNmyM6OhqrV6+GXC43qAxLZ4r2s9Tj4u+//44FCxYgNDQU7u7u8Pb2RmRkJN5//33cv3/f4HIsVX3bLicnp87nxHbt2mksi32vbkxxHaCK5zwDCSJqMNHR0QKA3n9TpkwRFRUVWstJSEgwqBwAIiEhQWedrl69Kjp27Kh1e09PT3HgwAET7wnrZeh+79+/v9YyqqurxYwZM3RuP3PmTFFdXa2zLgUFBSIyMlJrGc7OzmLdunUm3gPWqX///ga3HQBhZ2cncnNz1cpgv2sYuvZjXFycweVYWr86efKk8PPz01qOv7+/OHXqlMGfzxLVt+1+++034eHhobc/eXp6iu3bt+ssqy59XJ+1a9cKJycnrdv37NlTFBQUGLqbLJYp+p4lHhf3798vPD09tZYTEhIirl69atDns1T1bbvs7Ow6nRMBiKFDh2osi33PcKa6DhCC57y6cgARNZgbN24AAAICAvDUU08hOjoabdq0QXV1NX755Rd8+OGHyMvLw5YtW1BVVYWvvvpKb5nff/89AgICtKYHBgZqTSsuLsYTTzyBq1evAgBmzZqFiRMnwtXVFUeOHMHSpUtRVFSECRMmICUlBd27d6/bB7Zhc+bMwdy5c7Wmu7u7a01btGgRNmzYAAAIDw/HSy+9hKCgIGRlZWHFihVIS0vD+vXr0bx5c7z33nsay6iurkZsbCxOnz4NABg7dixmzZoFb29vnDp1Cu+88w5u3bqF+Ph4tGrVCiNGjKjHp7V+CQkJKC0t1Znn4sWLmDBhAgDg8ccfR6tWrbTmZb9rGG3atEFoaCiSkpLqvK0l9avr169j9OjRKCgogIODA/7rv/4Lo0aNAgAcPHgQ//73v5Gfn4/Ro0fj7NmzOv9erIUxbVdUVISSkhIAQN++fTFq1ChERETAx8cHBQUF2LNnD9atW4eioiI8/fTT8PT01Hssi4iIQEJCgtGf49ChQ5g9ezYUCgVatmyJRYsWoVevXrhz5w7WrVuHPXv2IDU1FbGxsUhOToa9vb3R72VJ6tP3lCzhuJiWloYJEyagrKwMHh4eeOWVVzBw4ECUlZVh+/btWLduHTIyMvDEE0/gzJkzaNKkidGf11IY03atWrXC+fPn9eZbunSp9F00Li5OZ172Pf1MeR3Ac14dmS28QtQIPPHEE+Lrr78WcrlcY3pBQYEICQmRop5Hjx7VmE/1l5Ps7Gyj67N48WKpnBUrVtRKT0lJEQ4ODgLQPTKhMVHur9dff92o7a9cuSLt04iICHH//n219NLSUhERESEACAcHB62/Nm3YsEGqy9y5c2ulX716VfolKzg4WFRVVRlV38bkpZdekvbp1q1ba6Wz3zWMJUuWiAMHDoibN28KIdR/YTT012RL61eTJ0+WytmxY0et9K+//rrOn9ES1bftUlJSxPjx40V6errWPHv37hUymUwAEEFBQUKhUGjMp/w1uT59prKyUnTo0EEaNZCZmVkrz9y5cw0emWDpTNH3LO24qPyl3MHBQZw4caJW+ooVK+p9HrcEpmg7feRyuQgICBAARJMmTWodV5XY9wxnqusAnvPqjkEOIjM7cOCAdCB4/vnnNeYxxZeKyspK0bRpUwFAdO7cWetwtvj4eOm9UlNTjXovW1LfL0dz5syRyvjll1805vnll190nnSEEKJz584CgPD29halpaUa8yxdulTnSYf+Vl1dLVq1aiUACA8PD437lP3u4TDmy7ol9av8/HxhZ2cnAIhhw4ZprfOwYcMEUDM1Kj8/34BPafka4kJLCCHGjRsnlXv27FmNeUxxoaX6RXzp0qUa85SWlopmzZoJAKJLly5Gv5clMleQw1THxVOnTknp8fHxGsuorq6W+rmXl5eorKw0qs6WpiH63nfffSeVOW3aNK352PdMy5DrAJ7z6o4LjxKZ2cCBA6XHWVlZDfY+R44cwb179wDUDEG0s9Pc/VUXsPrmm28arD6NgRAC+/btAwCEhoaid+/eGvP17t0bnTp1AgDs27cPQgi19IyMDFy6dAkAMH78eLi5uWksh21nuB9//BF5eXkAgCeffFLrPq0v9jvTs7R+tX//figUCgDAtGnTtNZbWY5CocD+/fu15qOHd17cu3ev9Fjb4o1ubm4YP348gJopbhkZGQ1Wn8bCVMdF1fbT1vfs7OwwZcoUAMBff/2FI0eOGFlr27dlyxbpsb6pKvXFvvc3fcc7nvOMwyAHkZlVVFRIjxtyvqHq6s39+/fXmi8iIkI68KWkpDRYfRqD7OxsaT6mrn2ump6Xl4ecnBy1NEPbzs/PDyEhIQDYdvqofplTfgFuCOx3pmdp/crQclTT2Ma6PezzYqdOneDn56c1H9vOtEx1XFSW4+7ujkcffVRrOWw//YqLi6XAQ7t27dCvX78GfT/2vb/pO97xnGccBjmIzOzo0aPS486dO+vNP23aNAQEBMDJyQm+vr7o3bs3XnvtNelXaW0uXrwoPQ4NDdWaz8HBAcHBwQAgRXwJ2LlzJ7p06QI3Nzc0adIEHTt2RFxcnM5fhQzd5w+mP7jfjSnn+vXrehfebKxKSkqkXyfatm1r0O1/2e8sh6X1K2U5TZs21fll3d/fH56enhrrQurqcl68fPkyevXqBS8vL7i4uCAwMBAxMTHSQn7alJSU4Pr16wDq93fUmJn7uKh8LTg4GA4O2u+lwPbTb9euXdKtdidPnmzQ7V/Z90xD3/GO5zzjMMhBZEYKhQLLli2TniuH5emSnJyM/Px8VFVV4fbt2zh16hTeffddBAcHY82aNVq3y83NBVDzi4eXl5fO92jdujUAoKCgQC3C3JhdvHgRly5dQllZGUpKSpCZmYktW7Zg0KBBiI2NlYbeqlLuc0D3KvPA3/scgHTyr085Qgi17ehvu3fvlk7azzzzjEFf5tjvLIel9Svlc0NWj1eW82Bd6G+//fYbEhMTAQBhYWF6gxx//vknUlNTce/ePVRUVCAvLw/79+9HXFwcunfvrvXLtan+jhozcx4Xy8vLUVhYCEB/+zVr1ky6AxrbTzNjRjey79WfIdcBPOcZh7eQJTKjlStXIjU1FUDNbZx0Dbfs0KEDxo4diz59+kgHjWvXrmH37t3YtWsXysvLMXv2bMhkMjz77LO1ti8uLgYAeHh46K2X6u1QS0pK4OzsXKfPZUvc3NwwZswYPP744wgNDYWHhwcKCgpw9OhRrF69Grdv38bevXsRExODw4cPw9HRUdpWuc8B/fv9wX2uylTlUI26fJljv7M8ltavjGlj9k3NKioqMHPmTFRXVwMA3n33Xa157ezs8Pjjj2PkyJF45JFH4OPjg+LiYpw7dw5r1qzBpUuXcPHiRQwcOBCpqalo06aN2vY8rhrPEo6LdWk/ZTmlpaVsPw3++OMPaTTBY489Jo2e0YZ9z3QMuQ7gOc84DHIQmcnRo0fx3//93wCAFi1aYNWqVVrzxsbGIi4urtYvzpGRkZgwYQIOHjyIsWPHoqqqCvPnz8eYMWNqDSErLy8HADg5Oemtm+rFVVlZmcGfyRbl5eVp/KVpyJAheP755zFixAikpaXh6NGjWLVqFV544QUpj3KfA/r3u659bqpyqOYXiOTkZAA1i3Qp551qwn5nmSytXxnTxmxfzZ577jmcOXMGQM3Ch6NHj9aad8+ePRqPzdHR0Zg7dy5mzZqFzZs3488//8SLL76IPXv2qOXjcdU4lnJcrEv7qZbT2NtPky+++EJapNKQURzse6Zh6HUAz3nG4XQVIjNIT09HbGws5HI5XFxcsHPnTrRo0UJr/qZNm+ocUj9q1CgsWbIEAHD//n1s2LChVh4XFxcAQGVlpd76qQ4JdXV11ZvflukaStuyZUvs2rVLGr3xySefqKUr9zmgf7/r2uemKodqvswpVwXXt3o8+51lsrR+ZUwbs31rW7p0KdavXw+g5oL5s88+05lf17HZ0dER69evl+408M0339RaJ4LHVeNYynGxLu2nWk5jbz9Ntm7dCqDmgnTChAl687Pv1V9drgN4zjMOgxxED1l2djaGDh2Ku3fvwt7eHtu3bzfJKtbPPvus9MVDdREjpSZNmgAwbMiY6iJDhgxHa8w6dOiAIUOGAAAyMzOlFbCBv/c5oH+/69rnpiqH6v5lTh/2u4fP0vqVMW3M9lW3Zs0avPrqqwBqFrw7dOiQ2nBpYzg4OGDGjBnS8wf7J4+rDedhHBfr0n6q5bD91KWmpuLy5csAgDFjxuhdI8UQ7Hu61fU6gOc84zDIQfQQ3bhxA4MHD8aNGzcgk8mwceNGxMTEmKTsFi1awMfHBwA0rmyuXCCotLQUf/31l86ylAsENW/enOsCGKBLly7SY9V9r7ook75FQFUXZVJdOMrYcmQymUGLQjUmZ86ckVYFHzVqFJo1a1bvMtnvHj5L61fK54Ys9Kss58G6NGbbtm3D3LlzAdTc7ejw4cPw9fU1Sdnajs0A0KpVK+lxff6OqLaHcVx0cXGR3kNf+929e1e62GL7qWuo26mz72lmzHUAz3nGYZCD6CEpLCzEkCFDcO3aNQA1UxtMeUIBoHMIqeoJRxm110QulyMrKwuAYbe0Je373dB9/mD6g/vdmHJat25d719CbY3qlzl9U1Xqgv3u4bK0fqUs5969e7h586bWMvLz81FUVKSxLo3V/v37MWXKFCgUCvj7++PHH380aXBWV99s0qSJ9MW7Pn9HpNnDOC4qy8nMzIRcLtdaDttPs6qqKmzfvh1ATWBq+PDhJiubfa82Y68DeM4zDoMcRA/BvXv3MGzYMOlX5GXLlmHevHkmfY+CggLpdmoBAQG10qOioqTHmoaPKp05c0b6xaNv374mraOtUr33uOq+b9++vfRc1z4HgGPHjgGo+YWjXbt2ammGtt3NmzeRkZEBgG33INUvc82bN8eIESNMUi773cNnaf3K0HJU09jGwI8//ojx48dDLpfDx8cHhw8fRlBQkEnfQ9uxWUnZdleuXNH5ZZ1tVzcP67ioLKe0tBRnz57VWg7bT7PExETcvn0bADBp0iQ4OJjufhTse+rqcx3Ac56RBBE1qNLSUtG3b18BQAAQixYtapD3eeedd6T3ePvtt2ulV1RUiKZNmwoAonPnzkKhUGgsJz4+XionNTW1QepqS65duyacnJwEABEUFFQrfc6cOdL+/OWXXzSW8csvv0h55s6dqzFP586dBQDh7e0tSktLNeZZunSpVM6OHTuM/1A2aN++fdK++ec//2myctnv6i87O1v67HFxcQZtY0n9Kj8/X9jZ2QkAYtiwYVrrPGzYMAFA2NnZifz8fAM+peUzpu2EECIlJUW4u7sLAKJp06bizJkzJq9bVVWV1L4AxB9//FErz9dffy2lL126VGM5paWlolmzZgKA6NKli8nraU7Gtp8+D+u4eOrUKSk9Pj5eYxnV1dXS34GXl5eorKys34ezEKZou9jYWKmMtLQ0k9WNfU+dKa4DeM6rOwY5iBpQRUWFGDp0aL0urrKzs8W5c+d05jlw4IB0oe3q6ipyc3M15lu8eLFUlxUrVtRKP3HihHBwcBAARP/+/etcV1uzf/9+UVVVpTX95s2bIjw8XNqnH374Ya08V65cEfb29gKAiIiIEPfv31dLv3//voiIiBAAhIODg8jIyND4Xhs2bJDeZ968ebXSMzMzhaenpwAggoODdda7MRo3bpy0/86ePas3P/vdw2PMl3VL61eTJ0+Wytm5c2et9B07djTIxaS5GdN2aWlpwsvLSwAQ7u7u4vjx43V+359++kncvXtXa3plZaWIi4uT6jZ69Git+Tp06CAACE9PT5GZmVkrz9y5c6VyEhIS6lxXS1bX9rPE42J0dLTUz0+cOFErfcWKFdL7vP766zrrbk3qG+S4ffu21E5hYWEGb8e+VzemuA4Qguc8Y8iE+P8bIxORyY0bN066P/igQYPw0Ucf6Zyn6OTkhJCQELXXkpOTMXDgQPTp0wejR4/GI488It1m6tq1a9i1axd27dol3eP8s88+kxZxe1BxcTEiIiKkYWjPPvssJk6cCFdXVxw5cgTvvfceSkpK4OrqihMnTqB79+713QVWrV27dqiqqsK4cePQp08ftGvXDq6urigsLERycjLWrFkjDcmNiorCDz/8oHHByFdeeQXLli0DAISHh+Pll19GUFAQsrKysHz5cqSlpUn53nvvPY11qa6uRv/+/ZGSkgKg5m9r1qxZaNasGVJTU/H222/j1q1bsLOzw8GDB002HcMW3L17F/7+/qioqEC3bt1w/vx5vduw3zWc48ePIzMzU3peWFiIhQsXAqgZ0jpz5ky1/FOnTtVYjiX1q+vXr+PRRx9FQUEBHBwcsGDBAowaNQoAcPDgQXz44YeQy+Vo3rw5zp07Z7WLAte37bKysvDYY4/h1q1bAICVK1di8ODBOt+zRYsWtW6tOHXqVOzevRtjxozBgAED0KlTJ3h6eqKkpARnz57F2rVrpWHhLVq0wMmTJ9G+fXuN5R86dAijR4+GQqFAy5Yt8dprr6Fnz564e/cu1q1bh927dwOoOcYnJyfD3t5ez16yXPVtP0s8LqalpaFv374oKyuDh4cHXn31VQwcOBBlZWXYvn071q5dCwAICQnBmTNn1O4wYU1MddxU+vzzz6XpEh988AEWLFhgUD3Y9+rGFNcBSjzn1ZFZQitEjQT+P4pp6L+2bdvWKuPIkSMGbevm5ibWrFmjt05Xr14VHTt21FqOp6enOHDgQAPsDevTtm1bg/b9uHHjdP6yUV1dLaZPn66zjBkzZojq6mqd9SkoKBCRkZFay3B2dhbr1q0z8V6wfqtWrdL5i6Em7HcNR/VXPkP+aWNp/erkyZPCz89Pazl+fn7i5MmTdd5flqS+bZeQkFDn86KmX98NrUdYWJhIT0/X+7nWrl0r/aqt6V/Pnj1FQUGBKXahWdW3/Sz1uLh//37p12dN/0JCQsTVq1eN2meWwlTHTaVevXoJAMLe3r5OUwnY9+qmrsc7TdcBSjzn1Q2DHEQNyBQHt6KiIvHFF1+IefPmiV69eok2bdoINzc34eTkJFq2bCkGDRok3n33XfHnn38aXK+SkhKxfPlyERERIby8vISbm5vo1KmTmD9/vsjJyTHhHrBuycnJ4s033xTDhw8XISEhwtvbWzg4OAgvLy8RFhYm4uPjNQ6P1SYxMVHExMSIgIAA4eTkJAICAkRMTIw4dOiQwWVUVVWJzz//XERFRQkfHx/h4uIiOnToIGbNmiUuXLhgzMe0eY899pj0ZS4vL8+gbdjvGo6pv6xbUr8qKCgQr732mujWrZvw8PAQHh4eIiwsTLz22muisLDQ4HIslaUEOS5evChWrlwpxo8fL7p16yZatmwpHB0dhYeHhwgKChITJkwQO3fuFHK53ODPdv78eTFr1izRoUMH4eLiInx8fERUVJRYtWqVzUz/q2/7WfJxMScnR8yfP1+EhIQINzc34eXlJSIiIsTy5cu1rj1gTUx53MzIyJDyDR8+vE71YN+rG1MGOZR4zjMMp6sQERERERERkU3gLWSJiIiIiIiIyCYwyEFERERERERENoFBDiIiIiIiIiKyCQxyEBEREREREZFNYJCDiIiIiIiIiGwCgxxEREREREREZBMY5CAiIiIiIiIim8AgBxERERERERHZBAY5iIiIiIiIiMgmMMhBRERERERERDaBQQ4iIiIiIiIisgkMchARERERERGRTWCQg4iIiIiIiIhsAoMcRERERERERGQTGOQgIiIiIiIiIpvAIAcRERERERER2QQGOYiIiIiIiIjIJjDIQURERKQiJycHMpkMMpkMmzZtMnd19HrjjTek+qr+S05ONnfVGtyAAQM0fnYiImq8GOQgIiKyEZWVldi2bRumTJmC0NBQ+Pj4wNHREb6+vnj00UcxZ84c/PDDD1AoFOauKplJcnKyWjCgSZMmuH//vt7tysrK0LRpU61BlOrqanh6ekImk6FHjx46yxJCwMfHRypn48aNOvNv3rxZyrtq1SqDPicRETVeDHIQERHZgD179qBTp06YNGkStm7diitXruDOnTuQy+W4ffs2zp07h9WrV2PIkCHo3LkzEhMTzV1lq7Vp0ybpojsnJ8fc1VFz/vx56V9kZKTe/CUlJdi7d6/efPv27UNRUZHWdHt7ezz22GMAgN9++01n3vT0dNy5c0d6/vPPP+t8b9X0fv36qaUlJCRIn3fOnDk6yyEiosbBwdwVICIiovp5++23sWTJEun5kCFDMGbMGHTp0gVeXl64c+cOrly5ggMHDuDw4cPIyMjAokWL8MQTT5ix1parXbt2EEKYuxpG6datm8F5XVxcUF5ejq1bt2LSpEk6827dulVtG0369euH77//HgqFAidOnMDw4cM15lMGLezt7VFdXW1wkMPX1xddunRRS2vfvr30uEWLFjrLISKixoEjOYiIiKxYQkKCFOBo0aIFkpOTkZSUhOeeew6DBg1Cjx49MHjwYMybNw/fffcdfvvtNwwePNjMtSZLMGbMGADA4cOHcfPmTa35bt26haSkJABATEyM1nyqoyyOHTumNZ8y7amnngIAZGVl4caNG1rfOyMjAwAQFRXF9TaIiEgvBjmIiIisVF5eHp577jkAgLu7O44ePYr+/fvr3KZbt274/vvv8a9//ethVJEs2NChQ+Hn54fq6mps27ZNa75t27ZBLpfDz88PQ4YM0ZovMjISLi4uAHRPQVGmPfnkkwgKCtKZX9dUFSIiIk0Y5CAiIrJSK1eulBaNfOuttxAaGmrQdnZ2dnjmmWdqvX737l0kJCTgmWeeQZcuXeDh4QEnJyf4+flh2LBhWLt2LSorK7WWq+muJDt37sTgwYPRokULuLq6IjQ0FK+88gr++usvnXW8cOEC3nnnHQwbNgyBgYFwdnaGh4cHOnbsiLi4OJw8edKgzwoAKSkpmDlzJjp16gRPT084OTkhMDAQo0aNwmeffVarLtrurqJctHPatGnSa+3bt9d4V5PCwkI4OztDJpNh9uzZeut44MABafsdO3YY/Nnqw97eHv/5n/8J4O/pKJps2bIFADBp0iTY29trzefs7IyePXsCAE6fPo2KiopaebKzs5GXlwegZmRGVFQUAAY5iIjIdBjkICIiskJCCGzevBlAzSiOWbNm1bvM8PBwTJ8+HV9++SUuXbqE0tJSVFVV4c8//0RSUhLi4+PRu3dvnVMbVM2YMQPjx4/Hjz/+iIKCApSXl+PKlStYtmwZunbtisuXL2vcLjk5GWFhYVi8eDGSkpKQl5eHyspKlJaWIjMzE1u2bEGfPn3wyiuv6Hz/srIyTJo0CVFRUdiwYQMyMjJQXFyMqqoq5OXlITExEc899xw++uijuu4qvXx9faWpHV9//bXWdSyUEhISAADe3t46p4SY2uTJkwEAaWlpSE9Pr5V+8eJFnDt3Ti2vLspAREVFBU6dOlUrXTlVpWPHjmjZsqUU5NA2vUUZ5PD09ET37t31vj8RERGDHERERFYoPT0dhYWFAIDo6Gg0adKk3mVWV1ejV69eePvtt3Hw4EGcPn0aKSkp+OKLL6RFJNPS0jBx4kS9ZX3++efYuHEjevbsiW3btuHMmTM4dOgQxo8fDwC4ceMGhg0bhuLi4lrbyuVyuLu7Y/z48Vi9ejWSk5Nx7tw5fPfdd/jwww/Rtm1bAMCyZcuk4MCDFAoFYmJipGkYHTt2xMqVK/Hzzz/j7NmzOHjwIF599VUEBwcbvH8iIyNx/vx5vPPOO9Jr33//vdodTVTvajJz5kwAwF9//YVvvvlGa7kFBQU4ePAgAODpp5+Gs7OzwXWqr/DwcHTt2hWA5tEcyte6detmUJBBdbSFptEZyteUwQ3l/xcuXMDdu3fV8hYXF+O3334DADz22GM6R5EQERFJBBEREVmdL774QgAQAMSiRYtMUmZGRobO9I0bN0rv+cMPP9RKz87OltIBiJEjR4qqqqpa+d566y0pz8KFC2ulFxQUiLt372qtR0VFhRgyZIgAINq2bSvkcnmtPP/zP/8jvUdsbKwoLy/XWFZ1dbXIzc3V+jkSEhJqbZOQkCClZ2dna61ndXW1aNu2rQAghgwZojXfv//9b6m8tLQ0rfm0ef3116Xt9Tly5Eitz7Z8+XIBQLRu3VooFAopr0KhEK1btxYAxIoVK4QQ6p/9yJEjtcovLi4WDg4OAoAYNmxYrfSQkBABQGzcuFF6zdfXVwAQBw4cUMv73XffSe/13nvvmXQ/EBGR7eJIDiIiIit0+/Zt6bGpbp3ZsWNHnenTpk2Tfs3fu3evzrzOzs5Yt24dHBxq361+0aJF0q1ON2zYUGudD19fX3h5eWkt28nJCe+//z4A4Pfff8evv/6qlq5QKKT0wMBAbNmyRevoCDs7O7Rq1UrnZzGWnZ0dpk+fDgD48ccfcf36dY35lKNRwsPDzTIl4+mnn4adnR2uX7+O5ORk6fXk5GRcv34ddnZ2em8xq+Th4YHw8HAAwIkTJ1BdXS2lPXinFKW+ffsCqD3yg+txEBGRMRjkICIiskKq0zzc3d1NXr4QAjdv3kRGRgYuXLgg/VMGBJTTCLQZOnQoAgICNKbZ2dkhLi4OAHDnzh1pzQdtKioq8Mcff+DixYtSPYQQUvqDdfn111+Rm5sLAJg1axY8PDx0f9gGNH36dNjZ2UGhUEhrqKg6e/Yszp8/L+U1h1atWmHgwIEA1KesKB8PGjSoToEgZUCiuLhYLQClXHejZcuWagE1betyKIMcLi4u0hQgIiIifRjkICIiskKqa3CUlpaarNzExESMGjUKTZs2hb+/Pzp16oSwsDDpX2JiIgBI64Foo++iVHkXDgDSRb6q0tJSLF26FI888gjc3d3Rtm1bdO3aVaqHcrSAprqkpaVJj6Ojo3XWo6EFBgZi2LBhAKB2pxYl5SgOZ2dnPP300w+zamqmTJkCANi9ezfKyspQVlaGXbt2qaUZSnWfq47GeHA9jgfznz17FmVlZQCAyspKpKamAgB69eoFJyenOtWBiIgaLwY5iIiIrJCPj4/0+M8//6x3eUIIzJw5E6NGjUJiYqLGBUFVKS9GtdE3haZly5bS4zt37qil5eTkICwsDK+++ir+93//V23KgyF1UQ16+Pv769z2YVAuQJqVlaU2WqGiogJfffUVAOA//uM/0KxZM7PUDwDGjh0LNzc3FBUVYd++fdi7dy+Ki4vh7u6OsWPH1qms6OhoyGQyAIYFOXr06AE3NzdUVVVJtwY+ffq0dEcaTlUhIqK6YJCDiIjICj3yyCPSY33TPQyxceNGbNiwAQDQvXt3bNq0CZcuXUJRURHkcjmEEBBCSLcRVZ0uoonyItcYkydPRnZ2NmQyGaZPn46kpCRcv34d5eXlUCgUEEKoBT701cXcRo8eLQV1VO8Gs3fvXumOIuaaqqLk4eGB2NhYADXTVJRTVWJjY+s8Hcrb21u6Y4sysFFUVCRNK3owyOHo6CiN7FEGgbgeBxERGYtBDiIiIivUtWtX+Pr6Aqi5ICwqKqpXeevWrQMABAcH48SJE4iLi0NoaCiaNGmiduvOB0ddaKNvdIlqure3t/T48uXLOH78OADg1VdfxYYNGzBkyBAEBgbC2dlZCp7oqodyvwBAfn6+QfVtSI6OjtKUj507d6KkpATA3wGPNm3aYPDgwWarn5KyjklJSTh8+LDaa3WlDEwUFBTg8uXLSElJgUKhUFuYVJUy8KEMbiiDHY6OjujTp49RdSAiosaJQQ4iIiIrJJPJpMU7S0tLsX79+nqVl56eDgAYM2YMXF1dNeYRQhg8auT06dMGpyvvtKJaDwCYMGGC1u3PnDmjNa1Hjx7S4wcXszQFY0apKKeslJaWYufOncjNzZUCCXFxcbCzM/9Xsscffxz+/v6Qy+WQy+UICAjA448/blRZD67LoQxe9O7dWy1opqQMcpw8eRIVFRU4ceIEgJq2bIiFdYmIyHaZ/4xKRERERpk/fz7c3NwAAEuWLMHly5cN2k6hUODLL79Ue00ulwPQvYjpvn37DB4ZkZSUpDWv6p1GmjVrphaUUNZDX11Wr16tNe2RRx5B69atAQDr16+XRk6YiouLi/S4oqLCoG1CQkKkC/+EhARs3rwZCoUCMpkM06ZNM2n9jGVvb4/JkyfD2dkZzs7OmDx5stHBF9UpJseOHZOCTQ9OVVHq06cP7O3tUVpaik2bNuHevXu1yiEiIjIEgxxERERWqlWrVvj0008B1AQE+vfvj6NHj+rc5uLFixg+fDjef/99tdeVt/Q8cOCAxqkgWVlZmDdvnsF1q6ioQHx8vMZFQ5ctW6Z221RnZ+da9QA0340EAFatWoV9+/ZpfW87OzssXLgQAJCbm4spU6agsrJSY16FQoEbN27o/TyqVBczzcrKMng75WiOn3/+GZ988gkAYMCAAWjfvn2d3r8hLV++HOXl5SgvL8eyZcuMLicgIABBQUEAgCNHjkgjb7Td7cbT0xNhYWEAgBUrVkivM8hBRER15WDuChAREZHxpk2bhtzcXCxZsgS3bt3CgAEDMHToUMTExKBz587w8vLCnTt3kJGRgcTERHz33Xeorq5WW7gUqFl7YeHChbhx4wb69OmDl19+Gd26dUN5eTl++uknfPTRR6ioqECPHj0MmrISERGBAwcOoG/fvpg/fz46duyIW7duYfPmzdi+fTuAmturLl68WG278PBwdOvWDRcuXMCaNWtw9+5dTJ48Gf7+/sjNzcUXX3yBXbt2oW/fvkhJSdH6/vPmzcOBAwdw+PBhfPPNNwgLC8PcuXMREREBNzc33Lx5EydPnsS2bdswadIkvPHGGwbv8/DwcLi4uKC8vByLFy+Go6Mj2rZtK416aNWqlcYpP0899RReeOEF3Lt3T1qTxNwLjjak6OhoZGVlIS8vDwDg4OCA3r17a80fFRWFX3/9FdeuXQNQE6zSNvKDiIhIGwY5iIiIrNzixYvRtWtXLFiwADk5OUhKSkJSUpLW/F27dlX7tRwA/vnPf+Lw4cNISkpCRkYGZsyYoZbu6uqKLVu2IDEx0aAgx7x583D06FFs2rQJEydOrJXu7++P77//Hk2bNlV7XSaTYevWrRg0aBDu3r2LHTt2YMeOHWp5wsLCsHPnTgQEBGh9fzs7O+zduxdxcXHYtWsXMjIy8OKLL+qttyGaNGmCF154AStWrMC5c+cwdOhQtfQjR45gwIABtbZzdXXFpEmTsGrVKgBA06ZNMW7cOJPUyRL169dPbTROeHi4NL1Kk6ioKGlkElDTzl5eXg1YQyIiskWcrkJERGQDxo4diytXruDLL7/EM888g06dOqFZs2ZwcHCAt7c3evTogblz5+Knn37C+fPna12YOzo6IjExER9//LE02sHV1RXBwcGYPXs2zp07h6eeeqpOdUpISMBXX32FAQMGwMfHB87OzggJCcFLL72E9PR0dOnSReN23bt3x6+//orZs2ejbdu2cHR0hLe3N3r27IkPPvgAqampalNGtHFzc8POnTvx008/YfLkyWjfvj1cXV3h5OSE1q1bY/To0VizZg0WLFhQp88F1Ey5WbduHaKjo+Ht7a1xMU1NlLfgBYCJEydqXeTVFjw41UTfqIwHp7JwqgoRERlDJiz95vJERERkFXJycqT1JRISEjB16lTzVsgCrVu3Ds8++ywA4NSpU+jZs2e9y3zjjTfw5ptvAqi5A05jxf1AREQAp6sQERERPTQbN24EUHPbXFMEOB504cIF6XH79u1t/var2dnZ0l14bt26ZebaEBGRJWCQg4iIiOghOHbsGE6ePAkAmD17doO8h/IOJYD2tUFsybRp0/TeUYiIiBoXBjmIiIiIGsjvv/+OiooKpKenY/78+QAAPz8/m76rChERkTlxTQ4iIiIyCa7JUVu7du3w+++/q722c+dOPPnkk2aqERERkW3j3VWIiIiIGliTJk3Qp08fHDx4kAEOIiKiBsSRHERERERERERkEziSg4iIiIiIiIhsAoMcRERERERERGQTGOQgIiIiIiIiIpvAIAcRERERERER2QQGOYiIiIiIiIjIJjDIQUREREREREQ2gUEOIiIiIiIiIrIJDHIQERERERERkU1gkIOIiIiIiIiIbAKDHERERERERERkExjkICIiIiIiIiKbwCAHEREREREREdkEBjmIiIiIiIiIyCYwyEFERERERERENoFBDiIiIiIiIiKyCQxyEBEREREREZFNYJCDiIiIiIiIiGwCgxxEREREREREZBP+D+UZt5gbKMESAAAAAElFTkSuQmCC",
+            "text/plain": [
+              "<Figure size 1200x800 with 1 Axes>"
+            ]
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "# Put results into a Dataframe\n",
+        "df = pd.DataFrame(parametric.results)\n",
+        "\n",
+        "# Plot results\n",
+        "fig = plt.figure(figsize=(6,4), dpi=200)\n",
+        "ax = fig.subplots(1)\n",
+        "\n",
+        "hvac_df = df[df['export_system_design.cables'] == 'XLPE_1000mm_220kV']\n",
+        "hvdc_df = df[df['export_system_design.cables'] == 'HVDC_2000mm_320kV']\n",
+        "\n",
+        "ax.plot(hvac_df[\"plant.capacity\"],\n",
+        "        (hvac_df[\"cable_cost\"] + hvac_df[\"oss_cost\"])/1e6,\n",
+        "        label='HVAC')\n",
+        "\n",
+        "ax.plot(hvdc_df[\"plant.capacity\"],\n",
+        "        (hvdc_df[\"cable_cost\"] + hvdc_df[\"oss_cost\"])/1e6,\n",
+        "        label='HVDC')\n",
+        "\n",
+        "ax.set_ylabel(\"CapEx [$M]\")\n",
+        "ax.set_xlabel(\"Capacity [MW]\")\n",
+        "ax.legend()\n",
+        "ax.grid()\n"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "metadata": {},
+      "source": [
+        "This plot shows that for a project that has less than 700MW of capacity you should use HVAC. But for projects greater than 700MW should use HVDC, if only considering the CapEx."
+      ]
+    }
+  ],
+  "metadata": {
+    "kernelspec": {
+      "display_name": "Python 3",
+      "language": "python",
+      "name": "python3"
+    },
+    "language_info": {
+      "codemirror_mode": {
+        "name": "ipython",
+        "version": 3
+      },
+      "file_extension": ".py",
+      "mimetype": "text/x-python",
+      "name": "python",
+      "nbconvert_exporter": "python",
+      "pygments_lexer": "ipython3",
+      "version": "3.8.18"
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 5
+}
diff --git a/library/cables/HVDC_2000mm_320kV.yaml b/library/cables/HVDC_2000mm_320kV.yaml
index 17ad7bf1..b33e25b3 100644
--- a/library/cables/HVDC_2000mm_320kV.yaml
+++ b/library/cables/HVDC_2000mm_320kV.yaml
@@ -1,11 +1,10 @@
-# Copper from Prysmian
 ac_resistance: 0           # ohm/km
 capacitance: 295000        # nF/km
 conductor_size: 2000       # mm^2
-cost_per_km: 500000        # $
+cost_per_km: 828000        # $
 current_capacity: 1900     # A # ESTIMATE
 inductance: 0.127          # mH/km
 linear_density: 53         # t/km
+rated_voltage: 320         # kV
 cable_type: HVDC-monopole  # HVDC vs HVAC
 name: HVDC_2000mm_320kV
-rated_voltage: 320
diff --git a/library/cables/HVDC_2000mm_320kV_dynamic.yaml b/library/cables/HVDC_2000mm_320kV_dynamic.yaml
new file mode 100644
index 00000000..3c8ec76b
--- /dev/null
+++ b/library/cables/HVDC_2000mm_320kV_dynamic.yaml
@@ -0,0 +1,10 @@
+ac_resistance: 0           # ohm/km
+capacitance: 295000        # nF/km
+conductor_size: 2000       # mm^2
+cost_per_km: 993600        # $ 20% cost increase
+current_capacity: 1900     # A # ESTIMATE
+inductance: 0.127          # mH/km
+linear_density: 53         # t/km
+rated_voltage: 320         # kV
+cable_type: HVDC-monopole  # HVDC vs HVAC
+name: HVDC_2000mm_320kV_dynamic
diff --git a/library/cables/HVDC_2000mm_400kV.yaml b/library/cables/HVDC_2000mm_400kV.yaml
index 986c387a..0719ac59 100644
--- a/library/cables/HVDC_2000mm_400kV.yaml
+++ b/library/cables/HVDC_2000mm_400kV.yaml
@@ -5,6 +5,6 @@ cost_per_km: 620000        # $
 current_capacity: 1900     # A
 inductance: 0.141          # mH/km
 linear_density: 59         # t/km
+rated_voltage: 400         # kV
 cable_type: HVDC-monopole  # HVDC vs HVAC
 name: HVDC_2000mm_400kV
-rated_voltage: 400
diff --git a/library/cables/HVDC_2500mm_525kV.yaml b/library/cables/HVDC_2500mm_525kV.yaml
index 9d9aee22..ffeb6330 100644
--- a/library/cables/HVDC_2500mm_525kV.yaml
+++ b/library/cables/HVDC_2500mm_525kV.yaml
@@ -1,11 +1,10 @@
-# Copper from Prysmian
 ac_resistance: 0           # ohm/km
 capacitance: 227000        # nF/km
 conductor_size: 2500       # mm^2
-cost_per_km: 825000        # $
+cost_per_km: 1420000       # $
 current_capacity: 1905     # A
 inductance: 0.149          # mH/km
 linear_density: 74         # t/km
+rated_voltage: 525         # kV
 cable_type: HVDC-bipole    # HVDC vs HVAC
 name: HVDC_2500mm_525kV
-rated_voltage: 525
diff --git a/library/cables/XLPE_1000m_220kV.yaml b/library/cables/XLPE_1000mm_220kV.yaml
similarity index 73%
rename from library/cables/XLPE_1000m_220kV.yaml
rename to library/cables/XLPE_1000mm_220kV.yaml
index 93fe52da..3d199571 100644
--- a/library/cables/XLPE_1000m_220kV.yaml
+++ b/library/cables/XLPE_1000mm_220kV.yaml
@@ -1,10 +1,10 @@
 ac_resistance: 0.16        # ohm/km
 capacitance: 190           # nF/km
 conductor_size: 1000       # mm^2
-cost_per_km: 850000        # $
+cost_per_km: 1420000       # $
 current_capacity: 825      # A
 inductance: 0.38           # mH/km
 linear_density: 115        # t/km
+rated_voltage: 220         # kV
 cable_type: HVAC           # HVDC vs HVAC
-name: XLPE_1000m_220kV
-rated_voltage: 220
+name: XLPE_1000mm_220kV
diff --git a/library/cables/XLPE_1000mm_220kV_dynamic.yaml b/library/cables/XLPE_1000mm_220kV_dynamic.yaml
new file mode 100644
index 00000000..b378759b
--- /dev/null
+++ b/library/cables/XLPE_1000mm_220kV_dynamic.yaml
@@ -0,0 +1,10 @@
+ac_resistance: 0.16        # ohm/km
+capacitance: 190           # nF/km
+conductor_size: 1000       # mm^2
+cost_per_km: 1700000       # $ 20% cost increase
+current_capacity: 825      # A
+inductance: 0.38           # mH/km
+linear_density: 115        # t/km
+rated_voltage: 220         # kV
+cable_type: HVAC           # HVDC vs HVAC
+name: XLPE_1000mm_220kV_dynamic
diff --git a/library/cables/XLPE_1200m_300kV_DC.yaml b/library/cables/XLPE_1200m_300kV_DC.yaml
deleted file mode 100644
index 54dd1064..00000000
--- a/library/cables/XLPE_1200m_300kV_DC.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-ac_resistance: 0           # ohm/km
-capacitance: 0             # nF/km
-conductor_size: 1200       # mm^2
-cost_per_km: 835000        # $
-current_capacity: 1458     # A
-inductance: 0              # mH/km
-linear_density: 44         # t/km
-cable_type: HVDC-monopole  # HVDC vs HVAC
-name: XLPE_1200m_300kV
-rated_voltage: 300
diff --git a/library/cables/XLPE_1200mm_275kV.yaml b/library/cables/XLPE_1200mm_275kV.yaml
index 3ec31c86..9fcbceab 100644
--- a/library/cables/XLPE_1200mm_275kV.yaml
+++ b/library/cables/XLPE_1200mm_275kV.yaml
@@ -1,4 +1,3 @@
-# from Prysmian
 ac_resistance: 0.026    # ohm/km
 capacitance: 196        # nF/km
 conductor_size: 1200    # mm^2
@@ -6,6 +5,6 @@ cost_per_km: 1300000    # $
 current_capacity: 547   # A # ESTIMATE
 inductance: 0.37        # mH/km
 linear_density: 148     # t/km
+rated_voltage: 275      # kV
 cable_type: HVAC        # HVDC vs HVAC
 name: XLPE_1200mm_275kV
-rated_voltage: 275
diff --git a/library/cables/XLPE_1600mm_275kV.yaml b/library/cables/XLPE_1600mm_275kV.yaml
index 6a28b149..2276c988 100644
--- a/library/cables/XLPE_1600mm_275kV.yaml
+++ b/library/cables/XLPE_1600mm_275kV.yaml
@@ -1,4 +1,3 @@
-# from Prysmian
 ac_resistance: 0.022    # ohm/km
 capacitance: 221        # nF/km
 conductor_size: 1600    # mm^2
@@ -6,6 +5,6 @@ cost_per_km: 1500000    # $
 current_capacity: 730   # A # ESTIMATE
 inductance: 0.35        # mH/km
 linear_density: 176     # t/km
+rated_voltage: 275      # kV
 cable_type: HVAC        # HVDC vs HVAC
 name: XLPE_1600mm_275kV
-rated_voltage: 275
diff --git a/library/cables/XLPE_1900mm_275kV.yaml b/library/cables/XLPE_1900mm_275kV.yaml
index 3ddd1a3e..1e8fac7d 100644
--- a/library/cables/XLPE_1900mm_275kV.yaml
+++ b/library/cables/XLPE_1900mm_275kV.yaml
@@ -1,11 +1,10 @@
-# from Prysmian
 ac_resistance: 0.020    # ohm/km
 capacitance: 224        # nF/km
 conductor_size: 1900    # mm^2
-cost_per_km: 1700000    # $
+cost_per_km: 1280000    # $
 current_capacity: 910   # A # ESTIMATE
 inductance: 0.35        # mH/km
 linear_density: 185     # t/km
+rated_voltage: 275      # kV
 cable_type: HVAC        # HVDC vs HVAC
 name: XLPE_1900mm_275kV
-rated_voltage: 275
diff --git a/library/cables/XLPE_500mm_220kV.yaml b/library/cables/XLPE_500mm_220kV.yaml
index c602bbf4..c0939a21 100644
--- a/library/cables/XLPE_500mm_220kV.yaml
+++ b/library/cables/XLPE_500mm_220kV.yaml
@@ -5,6 +5,6 @@ cost_per_km: 665000        # $
 current_capacity: 655      # A
 inductance: 0.43           # mH/km
 linear_density: 90         # t/km
+rated_voltage: 220         # kV
 cable_type: HVAC           # HVDC vs HVAC
 name: XLPE_500mm_220kV
-rated_voltage: 220
\ No newline at end of file
diff --git a/library/cables/XLPE_630mm_220kV.yaml b/library/cables/XLPE_630mm_220kV.yaml
index ff5e4820..10825289 100644
--- a/library/cables/XLPE_630mm_220kV.yaml
+++ b/library/cables/XLPE_630mm_220kV.yaml
@@ -5,6 +5,6 @@ cost_per_km: 710000        # $
 current_capacity: 715      # A
 inductance: 0.41           # mH/km
 linear_density: 96         # t/km
+rated_voltage: 220         # kV
 cable_type: HVAC           # HVDC vs HVAC
 name: XLPE_630mm_220kV
-rated_voltage: 220
\ No newline at end of file
diff --git a/library/cables/XLPE_800mm_220kV.yaml b/library/cables/XLPE_800mm_220kV.yaml
index 18ed6b96..151748d0 100644
--- a/library/cables/XLPE_800mm_220kV.yaml
+++ b/library/cables/XLPE_800mm_220kV.yaml
@@ -5,6 +5,6 @@ cost_per_km: 776000        # $
 current_capacity: 775      # A
 inductance: 0.40           # mH/km
 linear_density: 105        # t/km
+rated_voltage: 220         # kV
 cable_type: HVAC           # HVDC vs HVAC
 name: XLPE_800mm_220kV
-rated_voltage: 220
\ No newline at end of file
diff --git a/library/vessels/example_cable_lay_vessel.yaml b/library/vessels/example_cable_lay_vessel.yaml
index 728ac348..7813dc7b 100644
--- a/library/vessels/example_cable_lay_vessel.yaml
+++ b/library/vessels/example_cable_lay_vessel.yaml
@@ -3,7 +3,7 @@ transport_specs:
   max_windspeed: 25     # m/s
   transit_speed: 11.5   # km/hr
 vessel_specs:
-  day_rate: 120000      # USD/day, cost of operating vessel with crew
+  day_rate: 225000      # USD/day, cost of operating vessel with crew
   min_draft: 4.8        # m
   overall_length: 99.0  # m
 cable_storage:


Test patch:
diff --git a/tests/phases/design/test_electrical_design.py b/tests/phases/design/test_electrical_design.py
index 45dd2fbf..2ca93e26 100644
--- a/tests/phases/design/test_electrical_design.py
+++ b/tests/phases/design/test_electrical_design.py
@@ -11,7 +11,7 @@
 import pytest
 
 from ORBIT.core.library import extract_library_specs
-from ORBIT.phases.design import ElectricalDesign
+from ORBIT.phases.design import ElectricalDesign, OffshoreSubstationDesign
 
 # OSS TESTING
 
@@ -30,11 +30,10 @@
         range(10, 201, 50),
         range(10, 51, 10),
         range(100, 2001, 500),
-        ["XLPE_630mm_220kV", "XLPE_800mm_220kV", "XLPE_1000m_220kV"],
+        ["XLPE_630mm_220kV", "XLPE_800mm_220kV", "XLPE_1000mm_220kV"],
     ),
 )
 def test_parameter_sweep(distance_to_landfall, depth, plant_cap, cable):
-
     config = {
         "site": {"distance_to_landfall": distance_to_landfall, "depth": depth},
         "plant": {"capacity": plant_cap},
@@ -50,23 +49,22 @@ def test_parameter_sweep(distance_to_landfall, depth, plant_cap, cable):
 
     # Check valid substructure mass
     assert (
-        200 <= o._outputs["offshore_substation_substructure"]["mass"] <= 2500
+        200 <= o._outputs["offshore_substation_substructure"]["mass"] <= 2700
     )
 
     # Check valid topside mass
-    assert 200 <= o._outputs["offshore_substation_topside"]["mass"] <= 5000
+    assert 200 <= o._outputs["offshore_substation_topside"]["mass"] <= 5500
 
     # Check valid substation cost
-    assert 1e6 <= o.total_cost <= 1e9
+    assert 1e6 <= o.total_substation_cost <= 1e9
 
 
 def test_ac_oss_kwargs():
-
     test_kwargs = {
-        "mpt_cost_rate": 13500,
-        "topside_fab_cost_rate": 17000,
+        "mpt_unit_cost": 13500,
+        # "topside_fab_cost_rate": 17000,    # breaks
         "topside_design_cost": 7e6,
-        "shunt_cost_rate": 40000,
+        "shunt_unit_cost": 40000,
         "switchgear_cost": 15e5,
         "backup_gen_cost": 2e6,
         "workspace_cost": 3e6,
@@ -82,7 +80,6 @@ def test_ac_oss_kwargs():
     base_cost = o.detailed_output["total_substation_cost"]
 
     for k, v in test_kwargs.items():
-
         config = deepcopy(base)
         config["substation_design"] = {}
         config["substation_design"][k] = v
@@ -96,16 +93,16 @@ def test_ac_oss_kwargs():
 
 def test_dc_oss_kwargs():
     test_kwargs = {"converter_cost": 300e6, "dc_breaker_cost": 300e6}
+
     dc_base = deepcopy(base)
-    dc_base["export_system_design"]["cables"] = "XLPE_1200m_300kV_DC"
+    dc_base["export_system_design"]["cables"] = "HVDC_2000mm_320kV"
     o = ElectricalDesign(dc_base)
     o.run()
     base_cost = o.detailed_output["total_substation_cost"]
 
     for k, v in test_kwargs.items():
-
         config = deepcopy(base)
-        config["export_system_design"]["cables"] = "XLPE_1200m_300kV_DC"
+        config["export_system_design"]["cables"] = "HVDC_2000mm_320kV"
         config["substation_design"] = {}
         config["substation_design"][k] = v
 
@@ -116,16 +113,47 @@ def test_dc_oss_kwargs():
         assert cost != base_cost
 
 
+def test_new_old_hvac_substation():
+    """Temporary test until ElectricalDesign is merged with new release"""
+
+    config = deepcopy(base)
+    config["export_system_design"] = {"cables": "HVDC_2000mm_320kV"}
+    config["plant"]["capacity"] = 1000  # MW
+    config["plant"]["num_turbines"] = 200
+    config["turbine"] = {"turbine_rating": 5}
+
+    new = ElectricalDesign(config)
+    new.run()
+
+    old = OffshoreSubstationDesign(config)
+    old.run()
+
+    # same values
+    assert new.num_substations == old.num_substations
+    assert new.topside_mass == old.topside_mass
+    assert new.ancillary_system_costs == old.ancillary_system_costs
+    assert new.substructure_mass == old.substructure_mass
+
+    # different values
+    assert new.substation_cost != old.substation_cost
+    assert new.mpt_rating != old.mpt_rating
+    assert new.num_mpt != old.num_mpt
+    assert new.mpt_cost != old.mpt_cost
+    assert new.topside_cost != old.topside_cost
+    assert new.shunt_reactor_cost != old.shunt_reactor_cost
+
+
 def test_hvdc_substation():
     config = deepcopy(base)
-    config["export_system_design"] = {"cables": "XLPE_1200m_300kV_DC"}
+    config["export_system_design"] = {"cables": "HVDC_2000mm_320kV"}
     o = ElectricalDesign(config)
     o.run()
     assert o.converter_cost != 0
     assert o.shunt_reactor_cost == 0
     assert o.dc_breaker_cost != 0
     assert o.switchgear_cost == 0
-    assert o.num_cables / o.num_converters == 2
+    assert o.mpt_cost == 0
+    # assert o.num_cables / o.num_converters == 2  # breaks
 
     config = deepcopy(base)
     config["export_system_design"] = {"cables": "HVDC_2500mm_525kV"}
@@ -133,14 +161,32 @@ def test_hvdc_substation():
     o = ElectricalDesign(config)
     o.run()
 
-    assert o.num_converters == o.num_cables
+    # assert o.num_converters == o.num_cables    # breaks
+
+
+def test_onshore_substation():
+    config = deepcopy(base)
+    o = ElectricalDesign(config)
+    o.run()
+    assert o.onshore_cost == pytest.approx(95.487e6, abs=1e2)  # 109.32e6
+
+    config_mono = deepcopy(config)
+    config_mono["export_system_design"] = {"cables": "HVDC_2000mm_320kV"}
+    o_mono = ElectricalDesign(config_mono)
+    o_mono.run()
+    assert o_mono.onshore_cost == 244.3e6
+
+    config_bi = deepcopy(config)
+    config_bi["export_system_design"] = {"cables": "HVDC_2500mm_525kV"}
+    o_bi = ElectricalDesign(config_bi)
+    o_bi.run()
+    assert o_bi.onshore_cost == 450e6
 
 
 # EXPORT CABLE TESTING
 
 
 def test_export_kwargs():
-
     test_kwargs = {
         "num_redundant": 2,
         "touchdown_distance": 50,
@@ -153,7 +199,6 @@ def test_export_kwargs():
     base_cost = o.total_cost
 
     for k, v in test_kwargs.items():
-
         config = deepcopy(base)
         config["export_system_design"] = {"cables": "XLPE_630mm_220kV"}
         config["export_system_design"][k] = v
@@ -260,7 +305,6 @@ def test_design_result():
 
 
 def test_floating_length_calculations():
-
     base = deepcopy(config)
     base["site"]["depth"] = 250
     base["export_system_design"]["touchdown_distance"] = 0
@@ -280,7 +324,6 @@ def test_floating_length_calculations():
 
 
 def test_HVDC_cable():
-
     base = deepcopy(config)
     base["export_system_design"] = {"cables": "HVDC_2000mm_320kV"}
 
@@ -299,7 +342,6 @@ def test_HVDC_cable():
 
 
 def test_num_crossing():
-
     base_sim = ElectricalDesign(config)
     base_sim.run()
 
@@ -313,7 +355,6 @@ def test_num_crossing():
 
 
 def test_cost_crossing():
-
     base_sim = ElectricalDesign(config)
     base_sim.run()