From 0e0d37b9832a787c85562e8f5dca347c1ccfd448 Mon Sep 17 00:00:00 2001 From: dmulash Date: Mon, 13 Oct 2025 21:57:02 -0600 Subject: [PATCH 01/12] update array cable cost, add dynamic 220 kV 400 MW capacity export cable --- library/cables/XLPE_1200mm_220kV_dynamic.yaml | 13 +++++++++++++ library/cables/XLPE_630mm_66kV.yaml | 2 +- library/cables/XLPE_630mm_66kV_dynamic.yaml | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 library/cables/XLPE_1200mm_220kV_dynamic.yaml diff --git a/library/cables/XLPE_1200mm_220kV_dynamic.yaml b/library/cables/XLPE_1200mm_220kV_dynamic.yaml new file mode 100644 index 00000000..d3308df7 --- /dev/null +++ b/library/cables/XLPE_1200mm_220kV_dynamic.yaml @@ -0,0 +1,13 @@ +# Caveat: cable specs not from a spec sheet +# Assumed to have a cable with these costs +# and a capacity of 400 MW (seen on industry) +ac_resistance: 0.16 # ohm/km +capacitance: 190 # nF/km +conductor_size: 1200 # mm^2 +cost_per_km: 1801082 # $ +current_capacity: 1125 # A +inductance: 0.38 # mH/km +linear_density: 115 # t/km +rated_voltage: 220 # kV +cable_type: HVAC # HVDC vs HVAC +name: XLPE_1200mm_220kV_dynamic diff --git a/library/cables/XLPE_630mm_66kV.yaml b/library/cables/XLPE_630mm_66kV.yaml index 3697f6e0..72d11be2 100644 --- a/library/cables/XLPE_630mm_66kV.yaml +++ b/library/cables/XLPE_630mm_66kV.yaml @@ -1,7 +1,7 @@ ac_resistance: 0.04 capacitance: 300 conductor_size: 630 -cost_per_km: 483084 +cost_per_km: 650000 current_capacity: 775 inductance: 0.35 linear_density: 42.5 diff --git a/library/cables/XLPE_630mm_66kV_dynamic.yaml b/library/cables/XLPE_630mm_66kV_dynamic.yaml index 7a3737e8..4220f671 100644 --- a/library/cables/XLPE_630mm_66kV_dynamic.yaml +++ b/library/cables/XLPE_630mm_66kV_dynamic.yaml @@ -1,7 +1,7 @@ ac_resistance: 0.04 capacitance: 300 conductor_size: 630 -cost_per_km: 579700 # $ (20% adder over XLPE_630mm_66kV) +cost_per_km: 780000 # $ (20% adder over XLPE_630mm_66kV) current_capacity: 775 inductance: 0.35 linear_density: 42.5 From cf0186b93319cd08de13682c67c548e0c299e9a1 Mon Sep 17 00:00:00 2001 From: dmulash Date: Mon, 13 Oct 2025 23:04:29 -0600 Subject: [PATCH 02/12] Onshore Substation category --- ORBIT/manager.py | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/ORBIT/manager.py b/ORBIT/manager.py index 298ab5b4..483d1558 100644 --- a/ORBIT/manager.py +++ b/ORBIT/manager.py @@ -670,7 +670,7 @@ def run_install_phase(self, name, start, **kwargs): if phase.installation_capex: self.installation_costs[name] = phase.installation_capex - + return time, logs def get_phase_class(self, phase): @@ -747,6 +747,8 @@ def run_design_phase(self, name, **kwargs): self.detailed_outputs, phase.detailed_output ) + + def run_multiple_phases_in_serial(self, phase_list, **kwargs): """ Runs multiple phases listed in self.config['install_phases'] in serial. @@ -1054,6 +1056,8 @@ def outputs(self, include_logs=False, npv_detailed=False): "npv": self.npv, "supply_chain_capex": self.supply_chain_capex, "supply_chain_capex_kw": self.supply_chain_capex_per_kw, + "onshore_substation_capex": self.onshore_substation_capex, + "onshore_substation_capex_kw": self.onshore_substation_capex_per_kw, } if include_logs: @@ -1442,6 +1446,8 @@ def capex_breakdown(self): else: outputs[name] = cost + outputs["Onshore Substation"] = self.onshore_substation_capex + outputs["Turbine"] = self.turbine_capex outputs["Soft"] = self.soft_capex @@ -1491,7 +1497,7 @@ def capex_detailed_soft_capex_breakdown_per_kw(self): def bos_capex(self): """Returns total balance of system CapEx.""" - return self.system_capex + self.installation_capex + return self.system_capex + self.installation_capex + self.onshore_substation_capex @property def bos_capex_per_kw(self): @@ -1562,6 +1568,27 @@ def supply_chain_capex_per_kw(self): return _capex + @property + def onshore_substation_capex(self): + """Returns the onshore substation CapEx if available, otherwise None.""" + if "ElectricalDesign" in self.phases: + try: + return self.phases["ElectricalDesign"].detailed_output["export_system"]["onshore_substation_costs"] + except KeyError: + return None + return None + + @property + def onshore_substation_capex_per_kw(self): + """Returns the onshore substation CapEx/kW. + """ + if "ElectricalDesign" in self.phases: + try: + return self.onshore_substation_capex / (self.capacity * 1000) + except KeyError: + return None + return None + @property def overnight_capex(self): """Returns the overnight capital cost of the project.""" From 4238969536cc67b6b9b9386e6475f3961449bd13 Mon Sep 17 00:00:00 2001 From: dmulash Date: Tue, 14 Oct 2025 08:28:18 -0600 Subject: [PATCH 03/12] update soft costs based on subsidies analysis insights --- ORBIT/manager.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/ORBIT/manager.py b/ORBIT/manager.py index 483d1558..26aaafb5 100644 --- a/ORBIT/manager.py +++ b/ORBIT/manager.py @@ -365,7 +365,7 @@ def compile_input_dict(cls, phases): " commissioning_factor)" ), "construction_insurance_factor": ( - "float (optional, default: 0.0115)" + "float (optional, default: 0.0207)" ), "construction_financing_factor": ( "$/kW (optional, default: value calculated using" @@ -379,7 +379,7 @@ def compile_input_dict(cls, phases): ), "tax_rate": "float (optional, default: 0.26", "interest_during_construction": ( - "float (optional, default: 0.044" + "float (optional, default: 0.065" ), "procurement_contingency_factor": ( "float (optional, default: 0.0575)" @@ -387,12 +387,12 @@ def compile_input_dict(cls, phases): "installation_contingency_factor": ( "float (optional, default: 0.345)" ), - "decommissioning_factor": ("float (optional, default: 0.1725)"), + "decommissioning_factor": ("float (optional, default: 0.2)"), "commissioning_factor": "float (optional, default: 0.0115)", - "site_auction_price": "$ (optional, default: 100e6)", - "site_assessment_cost": "$ (optional, default: 50e6)", - "construction_plan_cost": "$ (optional, default: 1e6)", - "installation_plan_cost": "$ (optional, default: 0.25e6)", + "site_auction_price": "$ (optional, default: 105e6)", + "site_assessment_cost": "$ (optional, default: 200e6)", + "construction_plan_cost": "$ (optional, default: 25e6)", + "installation_plan_cost": "$ (optional, default: 25e6)", } config["design_phases"] = [*design_phases.keys()] @@ -1643,7 +1643,7 @@ def construction_insurance_capex(self): ) contruction_insurance_factor = self.project_params.get( - "construction_insurance_factor", 0.0115 + "construction_insurance_factor", 0.0207 ) if construction_insurance_per_kW is not None: @@ -1669,7 +1669,7 @@ def decommissioning_capex(self): ) decommissioning_factor = self.project_params.get( - "decommissioning_factor", 0.175 + "decommissioning_factor", 0.2 ) if decommissioning_per_kW is not None: @@ -1774,7 +1774,7 @@ def construction_financing_factor(self): ) tax_rate = self.project_params.get("tax_rate", 0.26) interest_during_construction = self.project_params.get( - "interest_during_construction", 0.044 + "interest_during_construction", 0.065 ) _check = 0 @@ -1835,15 +1835,15 @@ def project_capex(self): the keys below should be passed to the 'project_parameters' subdict. """ - site_auction = self.project_params.get("site_auction_price", 122698898) + site_auction = self.project_params.get("site_auction_price", 105000000) site_assessment = self.project_params.get( - "site_assessment_cost", 61349449 + "site_assessment_cost", 200000000 ) construction_plan = self.project_params.get( - "construction_plan_cost", 1226989 + "construction_plan_cost", 25000000 ) installation_plan = self.project_params.get( - "installation_plan_cost", 306747 + "installation_plan_cost", 25000000 ) return sum( From 49cfb1acef12fd5f92e5971969cd3eff5aaa0f31 Mon Sep 17 00:00:00 2001 From: Mulas Hernando Date: Fri, 7 Nov 2025 12:15:02 -0700 Subject: [PATCH 04/12] use none instead to 0 to avoid error when not using electricaldesign --- ORBIT/manager.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ORBIT/manager.py b/ORBIT/manager.py index 26aaafb5..b53ca9ca 100644 --- a/ORBIT/manager.py +++ b/ORBIT/manager.py @@ -1570,13 +1570,13 @@ def supply_chain_capex_per_kw(self): @property def onshore_substation_capex(self): - """Returns the onshore substation CapEx if available, otherwise None.""" + """Returns the onshore substation CapEx if available in 'ElectricalDesign', otherwise 0.""" if "ElectricalDesign" in self.phases: try: return self.phases["ElectricalDesign"].detailed_output["export_system"]["onshore_substation_costs"] except KeyError: - return None - return None + return 0 + return 0 @property def onshore_substation_capex_per_kw(self): From e28b1e413a6eea09bc741d1e6cfe7fd511a3656b Mon Sep 17 00:00:00 2001 From: Mulas Hernando Date: Fri, 7 Nov 2025 12:51:58 -0700 Subject: [PATCH 05/12] update tests --- tests/test_project_manager.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_project_manager.py b/tests/test_project_manager.py index 82ceff95..558a9708 100644 --- a/tests/test_project_manager.py +++ b/tests/test_project_manager.py @@ -948,22 +948,22 @@ def test_project_costs(): baseline = project.project_capex config = deepcopy(complete_project) - config["project_parameters"] = {"site_auction_price": 50e6} + config["project_parameters"] = {"site_auction_price": 105000000} project = ProjectManager(config) assert project.project_capex != baseline config = deepcopy(complete_project) - config["project_parameters"] = {"site_assessment_cost": 25e6} + config["project_parameters"] = {"site_assessment_cost": 200000000} project = ProjectManager(config) assert project.project_capex != baseline config = deepcopy(complete_project) - config["project_parameters"] = {"construction_plan_cost": 25e6} + config["project_parameters"] = {"construction_plan_cost": 25000000} project = ProjectManager(config) assert project.project_capex != baseline config = deepcopy(complete_project) - config["project_parameters"] = {"installation_plan_cost": 25e6} + config["project_parameters"] = {"installation_plan_cost": 25000000} project = ProjectManager(config) assert project.project_capex != baseline @@ -995,7 +995,7 @@ def test_total_capex(): fix_project.run() assert fix_project.total_capex == pytest.approx( - 1593220043.059402, abs=1e-1 + 1843929494.9506452, abs=1e-1 ) flt_project = ProjectManager(complete_floating_project) From d1b5e4a35c8d0b707257d2bf6b4254d0a422c651 Mon Sep 17 00:00:00 2001 From: Mulas Hernando Date: Fri, 7 Nov 2025 13:12:23 -0700 Subject: [PATCH 06/12] update tests --- examples/configs/example_fixed_project.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/configs/example_fixed_project.yaml b/examples/configs/example_fixed_project.yaml index ffbcade6..b77e6bc8 100644 --- a/examples/configs/example_fixed_project.yaml +++ b/examples/configs/example_fixed_project.yaml @@ -40,8 +40,7 @@ design_phases: - MonopileDesign - ScourProtectionDesign - ArraySystemDesign -- ExportSystemDesign -- OffshoreSubstationDesign +- ElectricalDesign install_phases: ArrayCableInstallation: 0 ExportCableInstallation: 2000 From a56f67b6388813ad0a4102417c41483398e2c177 Mon Sep 17 00:00:00 2001 From: dmulash <110245367+dmulash@users.noreply.github.com> Date: Fri, 7 Nov 2025 13:21:27 -0700 Subject: [PATCH 07/12] Revert commit --- examples/configs/example_fixed_project.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/configs/example_fixed_project.yaml b/examples/configs/example_fixed_project.yaml index b77e6bc8..ffbcade6 100644 --- a/examples/configs/example_fixed_project.yaml +++ b/examples/configs/example_fixed_project.yaml @@ -40,7 +40,8 @@ design_phases: - MonopileDesign - ScourProtectionDesign - ArraySystemDesign -- ElectricalDesign +- ExportSystemDesign +- OffshoreSubstationDesign install_phases: ArrayCableInstallation: 0 ExportCableInstallation: 2000 From 4ecebb04d7e04bb544f388016d1134a39538c0e3 Mon Sep 17 00:00:00 2001 From: Mulas Hernando Date: Fri, 7 Nov 2025 13:22:01 -0700 Subject: [PATCH 08/12] update tests --- tests/test_project_manager.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_project_manager.py b/tests/test_project_manager.py index 558a9708..7fabe212 100644 --- a/tests/test_project_manager.py +++ b/tests/test_project_manager.py @@ -948,22 +948,22 @@ def test_project_costs(): baseline = project.project_capex config = deepcopy(complete_project) - config["project_parameters"] = {"site_auction_price": 105000000} + config["project_parameters"] = {"site_auction_price": 30e6} project = ProjectManager(config) assert project.project_capex != baseline config = deepcopy(complete_project) - config["project_parameters"] = {"site_assessment_cost": 200000000} + config["project_parameters"] = {"site_assessment_cost": 30e6} project = ProjectManager(config) assert project.project_capex != baseline config = deepcopy(complete_project) - config["project_parameters"] = {"construction_plan_cost": 25000000} + config["project_parameters"] = {"construction_plan_cost": 30e6} project = ProjectManager(config) assert project.project_capex != baseline config = deepcopy(complete_project) - config["project_parameters"] = {"installation_plan_cost": 25000000} + config["project_parameters"] = {"installation_plan_cost": 30e6} project = ProjectManager(config) assert project.project_capex != baseline @@ -1002,7 +1002,7 @@ def test_total_capex(): flt_project.run() assert flt_project.total_capex == pytest.approx( - 4087665127.1458263, abs=1e-1 + 4448212431.513601, abs=1e-1 ) From a7ce0057cdeba6b50b8f37295ecf28c09d5be6f1 Mon Sep 17 00:00:00 2001 From: Mulas Hernando Date: Fri, 7 Nov 2025 15:34:40 -0700 Subject: [PATCH 09/12] update changelog, first try --- docs/source/changelog.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index 5cee1899..2f5dafbc 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -9,6 +9,22 @@ Unreleased configuration input. - Move the matplotlib import from the import section of ``/ORBIT/phases/design/array_system_design.py`` to the ``CustomArraySystemDesign.plot_array_system`` for missing module error handling. +- Updated default `soft_capex` factors + - `construction_insurance_factor` updated from 0.115 to 0.0207 based on industry benchmarking, resulting in higher construction insurance costs. + - `interest_during_construction` updated from 4.4% to 6.5% based on financial assumptions from the 2025 Annual Technology Baseline (ATB), increasing construction financing costs. + - `decommissioning_factor` updated from 0.175 to 0.2 based on industry benchmarking, leading to higher decommissioning costs than in previous versions. +- Updated default `project_capex` values + - `site_auction_price` increased from 100M to 105M USD to account for rent fees before operation. + - `site_assessment_cost`, `construction_plan_cost`, and `installation_plan_cost` increased from 50M, 1M, and 0.25M USD to 200M, 25M, and 25M USD, respectively. + - Total `project_capex` excluding `site_auction_price` now sums to 250M USD, aligning with DevEx recommendations based on industry benchmarking. + - These updates lead to higher default total project costs than in previous versions. +- Included onshore substation costs in BOS CapEx and project breakdown + - The `ElectricalDesign` module previously calculated onshore substation costs but did not include them in `capex_breakdown` or `bos_capex`. + - These costs are now incorporated when `ElectricalDesign` is used, resulting in higher `bos_capex`, `soft_capex`, and `total_capex` than in prior versions. +- Cable configuration file updates + - Added a new dynamic cable configuration file for floating cases: `library/cables/XLPE_1200mm_220kV_dynamic.yaml`. + - Updated cost values for `library/cables/XLPE_630mm_66kV.yaml` and `library/cables/XLPE_630mm_66kV_dynamic.yaml` based on industry benchmarking. + - All cable cost updates are expressed in 2024 USD for consistency with other library configuration files. 1.2.4 ----- From 7629cc0eec5dde904c7e52ccf166f684d9a1fdec Mon Sep 17 00:00:00 2001 From: Mulas Hernando Date: Fri, 7 Nov 2025 15:39:57 -0700 Subject: [PATCH 10/12] update changelog, second try --- docs/source/changelog.rst | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index 2f5dafbc..74d2c657 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -10,21 +10,21 @@ Unreleased - Move the matplotlib import from the import section of ``/ORBIT/phases/design/array_system_design.py`` to the ``CustomArraySystemDesign.plot_array_system`` for missing module error handling. - Updated default `soft_capex` factors - - `construction_insurance_factor` updated from 0.115 to 0.0207 based on industry benchmarking, resulting in higher construction insurance costs. - - `interest_during_construction` updated from 4.4% to 6.5% based on financial assumptions from the 2025 Annual Technology Baseline (ATB), increasing construction financing costs. - - `decommissioning_factor` updated from 0.175 to 0.2 based on industry benchmarking, leading to higher decommissioning costs than in previous versions. + -`construction_insurance_factor` updated from 0.115 to 0.0207 based on industry benchmarking, resulting in higher construction insurance costs. + -`interest_during_construction` updated from 4.4% to 6.5% based on financial assumptions from the 2025 Annual Technology Baseline (ATB), increasing construction financing costs. + -`decommissioning_factor` updated from 0.175 to 0.2 based on industry benchmarking, leading to higher decommissioning costs than in previous versions. - Updated default `project_capex` values - - `site_auction_price` increased from 100M to 105M USD to account for rent fees before operation. - - `site_assessment_cost`, `construction_plan_cost`, and `installation_plan_cost` increased from 50M, 1M, and 0.25M USD to 200M, 25M, and 25M USD, respectively. - - Total `project_capex` excluding `site_auction_price` now sums to 250M USD, aligning with DevEx recommendations based on industry benchmarking. - - These updates lead to higher default total project costs than in previous versions. + -`site_auction_price` increased from 100M to 105M USD to account for rent fees before operation. + -`site_assessment_cost`, `construction_plan_cost`, and `installation_plan_cost` increased from 50M, 1M, and 0.25M USD to 200M, 25M, and 25M USD, respectively. + -Total `project_capex` excluding `site_auction_price` now sums to 250M USD, aligning with DevEx recommendations based on industry benchmarking. + -These updates lead to higher default total project costs than in previous versions. - Included onshore substation costs in BOS CapEx and project breakdown - - The `ElectricalDesign` module previously calculated onshore substation costs but did not include them in `capex_breakdown` or `bos_capex`. - - These costs are now incorporated when `ElectricalDesign` is used, resulting in higher `bos_capex`, `soft_capex`, and `total_capex` than in prior versions. + -The `ElectricalDesign` module previously calculated onshore substation costs but did not include them in `capex_breakdown` or `bos_capex`. + -These costs are now incorporated when `ElectricalDesign` is used, resulting in higher `bos_capex`, `soft_capex`, and `total_capex` than in prior versions. - Cable configuration file updates - - Added a new dynamic cable configuration file for floating cases: `library/cables/XLPE_1200mm_220kV_dynamic.yaml`. - - Updated cost values for `library/cables/XLPE_630mm_66kV.yaml` and `library/cables/XLPE_630mm_66kV_dynamic.yaml` based on industry benchmarking. - - All cable cost updates are expressed in 2024 USD for consistency with other library configuration files. + -Added a new dynamic cable configuration file for floating cases: `library/cables/XLPE_1200mm_220kV_dynamic.yaml`. + -Updated cost values for `library/cables/XLPE_630mm_66kV.yaml` and `library/cables/XLPE_630mm_66kV_dynamic.yaml` based on industry benchmarking. + -All cable cost updates are expressed in 2024 USD for consistency with other library configuration files. 1.2.4 ----- From ca1137dee0e386e1ba4248526afab8d8d0ceabf9 Mon Sep 17 00:00:00 2001 From: Mulas Hernando Date: Fri, 7 Nov 2025 15:45:55 -0700 Subject: [PATCH 11/12] update changelog, third try --- docs/source/changelog.rst | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index 74d2c657..84c5711f 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -9,22 +9,22 @@ Unreleased configuration input. - Move the matplotlib import from the import section of ``/ORBIT/phases/design/array_system_design.py`` to the ``CustomArraySystemDesign.plot_array_system`` for missing module error handling. -- Updated default `soft_capex` factors - -`construction_insurance_factor` updated from 0.115 to 0.0207 based on industry benchmarking, resulting in higher construction insurance costs. - -`interest_during_construction` updated from 4.4% to 6.5% based on financial assumptions from the 2025 Annual Technology Baseline (ATB), increasing construction financing costs. - -`decommissioning_factor` updated from 0.175 to 0.2 based on industry benchmarking, leading to higher decommissioning costs than in previous versions. -- Updated default `project_capex` values - -`site_auction_price` increased from 100M to 105M USD to account for rent fees before operation. - -`site_assessment_cost`, `construction_plan_cost`, and `installation_plan_cost` increased from 50M, 1M, and 0.25M USD to 200M, 25M, and 25M USD, respectively. - -Total `project_capex` excluding `site_auction_price` now sums to 250M USD, aligning with DevEx recommendations based on industry benchmarking. - -These updates lead to higher default total project costs than in previous versions. -- Included onshore substation costs in BOS CapEx and project breakdown - -The `ElectricalDesign` module previously calculated onshore substation costs but did not include them in `capex_breakdown` or `bos_capex`. - -These costs are now incorporated when `ElectricalDesign` is used, resulting in higher `bos_capex`, `soft_capex`, and `total_capex` than in prior versions. -- Cable configuration file updates - -Added a new dynamic cable configuration file for floating cases: `library/cables/XLPE_1200mm_220kV_dynamic.yaml`. - -Updated cost values for `library/cables/XLPE_630mm_66kV.yaml` and `library/cables/XLPE_630mm_66kV_dynamic.yaml` based on industry benchmarking. - -All cable cost updates are expressed in 2024 USD for consistency with other library configuration files. +- Updated default `soft_capex` factors. `PR #201 ` + - `construction_insurance_factor` updated from 0.115 to 0.0207 based on industry benchmarking, resulting in higher construction insurance costs. + - `interest_during_construction` updated from 4.4% to 6.5% based on financial assumptions from the 2025 Annual Technology Baseline (ATB), increasing construction financing costs. + - `decommissioning_factor` updated from 0.175 to 0.2 based on industry benchmarking, leading to higher decommissioning costs than in previous versions. +- Updated default `project_capex` values. `PR #201 ` + - `site_auction_price` increased from 100M to 105M USD to account for rent fees before operation. + - `site_assessment_cost`, `construction_plan_cost`, and `installation_plan_cost` increased from 50M, 1M, and 0.25M USD to 200M, 25M, and 25M USD, respectively. + - Total `project_capex` excluding `site_auction_price` now sums to 250M USD, aligning with DevEx recommendations based on industry benchmarking. + - These updates lead to higher default total project costs than in previous versions. +- Included onshore substation costs in BOS CapEx and project breakdown. `PR #201 ` + - The `ElectricalDesign` module previously calculated onshore substation costs but did not include them in `capex_breakdown` or `bos_capex`. + - These costs are now incorporated when `ElectricalDesign` is used, resulting in higher `bos_capex`, `soft_capex`, and `total_capex` than in prior versions. +- Cable configuration file updates. `PR #201 ` + - Added a new dynamic cable configuration file for floating cases: `library/cables/XLPE_1200mm_220kV_dynamic.yaml`. + - Updated cost values for `library/cables/XLPE_630mm_66kV.yaml` and `library/cables/XLPE_630mm_66kV_dynamic.yaml` based on industry benchmarking. + - All cable cost updates are expressed in 2024 USD for consistency with other library configuration files. 1.2.4 ----- From befbdf52560a51ef5b58296a6f74b791a796628d Mon Sep 17 00:00:00 2001 From: Mulas Hernando Date: Fri, 7 Nov 2025 15:48:20 -0700 Subject: [PATCH 12/12] update changelog, fourth try --- docs/source/changelog.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index 84c5711f..d5ec6b38 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -9,19 +9,19 @@ Unreleased configuration input. - Move the matplotlib import from the import section of ``/ORBIT/phases/design/array_system_design.py`` to the ``CustomArraySystemDesign.plot_array_system`` for missing module error handling. -- Updated default `soft_capex` factors. `PR #201 ` +- Updated default `soft_capex` factors. `PR #201 `_ - `construction_insurance_factor` updated from 0.115 to 0.0207 based on industry benchmarking, resulting in higher construction insurance costs. - `interest_during_construction` updated from 4.4% to 6.5% based on financial assumptions from the 2025 Annual Technology Baseline (ATB), increasing construction financing costs. - `decommissioning_factor` updated from 0.175 to 0.2 based on industry benchmarking, leading to higher decommissioning costs than in previous versions. -- Updated default `project_capex` values. `PR #201 ` +- Updated default `project_capex` values. `PR #201 `_ - `site_auction_price` increased from 100M to 105M USD to account for rent fees before operation. - `site_assessment_cost`, `construction_plan_cost`, and `installation_plan_cost` increased from 50M, 1M, and 0.25M USD to 200M, 25M, and 25M USD, respectively. - Total `project_capex` excluding `site_auction_price` now sums to 250M USD, aligning with DevEx recommendations based on industry benchmarking. - These updates lead to higher default total project costs than in previous versions. -- Included onshore substation costs in BOS CapEx and project breakdown. `PR #201 ` +- Included onshore substation costs in BOS CapEx and project breakdown. `PR #201 `_ - The `ElectricalDesign` module previously calculated onshore substation costs but did not include them in `capex_breakdown` or `bos_capex`. - These costs are now incorporated when `ElectricalDesign` is used, resulting in higher `bos_capex`, `soft_capex`, and `total_capex` than in prior versions. -- Cable configuration file updates. `PR #201 ` +- Cable configuration file updates. `PR #201 `_ - Added a new dynamic cable configuration file for floating cases: `library/cables/XLPE_1200mm_220kV_dynamic.yaml`. - Updated cost values for `library/cables/XLPE_630mm_66kV.yaml` and `library/cables/XLPE_630mm_66kV_dynamic.yaml` based on industry benchmarking. - All cable cost updates are expressed in 2024 USD for consistency with other library configuration files.