Skip to content

Commit cf7bc1b

Browse files
WIP - accrued financing during construction more-ish-ly aligned with pre-existing convention - TBD how things shake out when Total CAPEX value is re-aligned to OCC as it was previously...
1 parent 8f78111 commit cf7bc1b

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/geophires_x/EconomicsSam.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,10 @@ def _calculate_phased_capex_costs(
379379
"""
380380
Calculates the true capitalized cost and interest during pre-revenue years (exploration/permitting/appraisal,
381381
construction) by simulating a year-by-year phased expenditure with inflation.
382+
383+
Per GEOPHIRES convention, financing begins to accrue in Year 0:
384+
- Inflation for Year 0 spending is applied in Year 0.
385+
- Interest on debt for Year 0 spending is accrued in Year 0.
382386
"""
383387

384388
logger.info(f"Using Phased CAPEX Schedule: {phased_capex_schedule}")
@@ -392,17 +396,20 @@ def _calculate_phased_capex_costs(
392396
# Calculate base (overnight) CAPEX for this year
393397
base_capex_this_year_usd = total_overnight_capex_usd * phased_capex_schedule[year_index]
394398

399+
# Calculate inflation adjustment for this year
395400
inflation_factor = (1.0 + inflation_rate) ** (year_index + 1)
396401
inflation_cost_this_year_usd = base_capex_this_year_usd * (inflation_factor - 1.0)
397402

398403
# Total CAPEX spent this year (including inflation)
399404
capex_this_year_usd = base_capex_this_year_usd + inflation_cost_this_year_usd
400405

401-
# Interest is calculated on the opening balance (from previous years' draws)
402-
interest_this_year_usd = current_debt_balance_usd * pre_revenue_bond_interest_rate
403-
406+
# Debt drawn to cover this year's spending
404407
new_debt_draw_usd = capex_this_year_usd * debt_fraction
405408

409+
# Interest is calculated on the opening balance PLUS the new draw for this year.
410+
# This aligns with the convention of costs (inflation) being incurred at the start of the year.
411+
interest_this_year_usd = (current_debt_balance_usd + new_debt_draw_usd) * pre_revenue_bond_interest_rate
412+
406413
# Add this year's direct cost AND capitalized interest to the total project cost basis
407414
total_capitalized_cost_usd += capex_this_year_usd + interest_this_year_usd
408415
total_interest_accrued_usd += interest_this_year_usd
@@ -485,7 +492,11 @@ def _get_single_owner_parameters(model: Model) -> dict[str, Any]:
485492

486493
# TODO/WIP align/adjust for all pre-revenue years (e.g. permitting/exploration, not just construction)
487494
econ.accrued_financing_during_construction_percentage.value = (
488-
quantity(construction_financing_cost_usd / total_overnight_capex_usd, 'dimensionless')
495+
quantity(
496+
# construction_financing_cost_usd / total_overnight_capex_usd,
497+
construction_financing_cost_usd / total_installed_cost_usd,
498+
'dimensionless',
499+
)
489500
.to(convertible_unit(econ.accrued_financing_during_construction_percentage.CurrentUnits))
490501
.magnitude
491502
)

0 commit comments

Comments
 (0)