forked from NREL/GEOPHIRES-X
-
Notifications
You must be signed in to change notification settings - Fork 1
SAM-EM Multiple Construction Years [v3.10] #112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
softwareengineerprogrammer
merged 185 commits into
main
from
sam-em-multi-year-construction_v3
Dec 13, 2025
Merged
Changes from all commits
Commits
Show all changes
185 commits
Select commit
Hold shift + click to select a range
955a7c5
gitignore working files
softwareengineerprogrammer 29b2f17
fix parameter positional list parameter check
softwareengineerprogrammer 4604d75
example_SAM-single-owner-PPA-5.txt
softwareengineerprogrammer 36da399
Additional integrity check for example files in test_geophires_examples
softwareengineerprogrammer 66472bd
support construction years > 1 by offsetting SAM cash flow vectors - …
softwareengineerprogrammer f95e1d9
incremental adjustments. all examples tests pass
softwareengineerprogrammer 4ff54e7
update construction year test (WIP)
softwareengineerprogrammer 73c1dd9
let construction inflation cost be calculated from inflation + constr…
softwareengineerprogrammer fd6dc58
initial impl of phased construction capex
softwareengineerprogrammer fe01752
example_SAM-single-owner-PPA-5 sculpting
softwareengineerprogrammer 2e2b8fa
naming aligned with eventual support for separate exploration costs f…
softwareengineerprogrammer 369bf89
more naming to align with pre-revenue convention and existing 'bond' …
softwareengineerprogrammer 518015e
more bond terminology and default value alignment
softwareengineerprogrammer 4c625e3
consolidate logic for default phased capex schedule + more naming/ter…
softwareengineerprogrammer 8f78111
align inflation costs during construction with pre-existing conventio…
softwareengineerprogrammer cf7bc1b
WIP - accrued financing during construction more-ish-ly aligned with …
softwareengineerprogrammer 4d9c8d8
Revert "WIP - accrued financing during construction more-ish-ly align…
softwareengineerprogrammer bfff80f
align SAM economics test with corrected accrued financing during cons…
softwareengineerprogrammer 632b8bf
Bump version: 3.9.65 → 3.10.0
softwareengineerprogrammer 87af498
regenerate examples affected by change to accrued financing during co…
softwareengineerprogrammer 84a28f7
fix unit test, update schema
softwareengineerprogrammer 3be2926
use custom depreciation schedule
softwareengineerprogrammer 478e5b2
regenerate example_SAM-single-owner-PPA-5 with custom depreciation
softwareengineerprogrammer c1cbbec
make 'construction years' terminology synonymous with pre-revenue years
softwareengineerprogrammer f299be2
Fix test_multiple_construction_years_supported
softwareengineerprogrammer 704758c
align terminology around bond/debt/loans in applicable tooltip texts
softwareengineerprogrammer 0313a81
add Bond Financing Start Year
softwareengineerprogrammer 2657cc3
validation cleanup, FIXME WIP for WACC. also WIP: Construction Bond I…
softwareengineerprogrammer 216b5ab
remove construction bond interest rate since it's redundant with Infl…
softwareengineerprogrammer 11eab77
Bump version: 3.10.0 → 3.10.1
softwareengineerprogrammer 9e294de
update test_royalty_rate_not_supported_for_non_sam_economic_models
softwareengineerprogrammer 52ad631
Disable bond financing start year for now since we can't disable debt…
softwareengineerprogrammer 9dbf2f9
don't include interest in phased capex schedule calculation since SAM…
softwareengineerprogrammer 19ee1ab
only run core test matrix items on non-main branch in GHA
softwareengineerprogrammer 18da2f6
use cancel-action instead of invalid conditional
softwareengineerprogrammer 2f18744
andymckay/cancel-action@v0.4 (0.5 doesn't seem to be available)
softwareengineerprogrammer 16007c8
andymckay/cancel-action@v0.3 (0.4 doesn't seem to be available)
softwareengineerprogrammer f2083de
try dropping 'v' prefix (and trying 0.5 again)
softwareengineerprogrammer 941eade
make all test steps conditional instead of using cancel action
softwareengineerprogrammer 56383cf
add no-op '[skip check]' step to help make it apparent why subsequent…
softwareengineerprogrammer a424f3d
skip step wording
softwareengineerprogrammer 716b42b
remove unused utility function
softwareengineerprogrammer 64c0dfd
move phased capex function to utilities
softwareengineerprogrammer 749219b
WIP - aligning post-processing cash flows (to achieve parity for Ferv…
softwareengineerprogrammer 943747c
WIP - Fervo_Project_Cape-4 IRR parity achieved - TODO/WIP to achieve …
softwareengineerprogrammer 421319e
Fervo_Project_Cape-4 NPV parity achieved
softwareengineerprogrammer e585ab2
base test case handle zero when calculating percent difference
softwareengineerprogrammer b390de5
regenerate example_SAM-single-owner-PPA-5
softwareengineerprogrammer ac7c6df
Bump version: 3.10.1 → 3.10.2
softwareengineerprogrammer 393636d
adjust_phased_schedule_to_new_length utility - WIP, not yet integrated
softwareengineerprogrammer 8746790
Update assertHasLogRecordWithMessage to allow substring matching
softwareengineerprogrammer bca12aa
automatically adjust capex schedule length for construction years in …
softwareengineerprogrammer faa20d2
Bump version: 3.10.2 → 3.10.3
softwareengineerprogrammer 00818d6
WIP - structure PreRevenueCostsAndCashflow profile to mirror SAM rows
softwareengineerprogrammer db94a8b
insert columns with negative year indexes for construction years befo…
softwareengineerprogrammer 01a1077
WIP - insert pre-revenue values from SAM Economics Calculations - TOD…
softwareengineerprogrammer a6b59fa
WIP - add separate CONSTRUCTION cash flow profile category instead of…
softwareengineerprogrammer 4615b82
use construction-specific row names for now to reduce potential confu…
softwareengineerprogrammer 51945d5
re-enable behavior to backfill native SAM rows
softwareengineerprogrammer f04a30f
include debt balance line item
softwareengineerprogrammer 03506d2
initial impl of NPV backfill (WIP - needs cleanup)
softwareengineerprogrammer 717307c
backfill IRR
softwareengineerprogrammer f997c48
update example_SAM-single-owner-PPA-5
softwareengineerprogrammer 6fe5ca7
Bump version: 3.10.3 → 3.10.4
softwareengineerprogrammer e4c3faf
temporarily only run check/docs/py312 in GHA (previous approach wasn'…
softwareengineerprogrammer 0d9a962
disable backfilling except for NPV & IRR, for now
softwareengineerprogrammer cd78710
don't erroneously double-count IDC as debt closing cost
softwareengineerprogrammer 40daa7e
enable pre-commit formatting of EconomicsUtils.py
softwareengineerprogrammer dd1e9cf
EconomicsUtils documentation copy edit, formatting
softwareengineerprogrammer 338c3ca
regenerate SAM examples - adds construction cash flow line items only…
softwareengineerprogrammer 3e28dc6
backfill NPV/IRR all years (including final year), skip test_nan_afte…
softwareengineerprogrammer 2b638cb
WIP - fix issue with too many year columns being generated (construct…
softwareengineerprogrammer 2f1005f
fix IRR & NPV backfill per previous commit WIP explanation
softwareengineerprogrammer 9d22f32
Merge pull request #3 from scientific-web-services/adjust-cash-flow-t…
softwareengineerprogrammer 724a2c3
Bump version: 3.10.4 → 3.10.5
softwareengineerprogrammer 8207457
re-enable bond financing start year now that it's compatible with the…
softwareengineerprogrammer f85acd3
Bump version: 3.10.5 → 3.10.6
softwareengineerprogrammer d1e3583
Add Inflated Bond Interest Rate During Construction param
softwareengineerprogrammer 01eaadb
Bump version: 3.10.6 → 3.10.7
softwareengineerprogrammer 124bff4
fix Inflated Bond Interest Rate During Construction impl (inclues cor…
softwareengineerprogrammer e4cbce4
Bump version: 3.10.7 → 3.10.8
softwareengineerprogrammer 865b7ab
add debt interest payment (IDC) line item
softwareengineerprogrammer 504e794
construct construction cash flow profile rows in pre-revenue calculat…
softwareengineerprogrammer 79dabc1
insert separator rows in construction cash flow profile category
softwareengineerprogrammer be40857
extend pre-revenue/construction row length to match rest of profile (…
softwareengineerprogrammer d2f0a19
regenerate examples
softwareengineerprogrammer bfd6cd6
Bump version: 3.10.8 → 3.10.9
softwareengineerprogrammer 2b89e1d
define capex schedule min max values (fixed invalid JSON in generated…
softwareengineerprogrammer ef9d20c
pivot Bond Financing Start Year to be index-based for consistency/cla…
softwareengineerprogrammer a6206ae
Bump version: 3.10.9 → 3.10.10
softwareengineerprogrammer 1a5af3b
update construction capex schedule tooltip text to reflect implementa…
softwareengineerprogrammer 3b36dac
test that construction debt balance equals SAM debt balance at Year 0
softwareengineerprogrammer bc746b4
add issuance of equity [construction] cash flow row. test that sums f…
softwareengineerprogrammer 12b172d
add interest during construction (IDC) output parameter
softwareengineerprogrammer 00e1b5e
Add Interest During Construction (IDC) capital cost output
softwareengineerprogrammer 66f82ea
break out EconomicsSamPreRevenue.py from EconomicsUtils.py
softwareengineerprogrammer b292910
Revert "temporarily only run check/docs/py312 in GHA (previous approa…
softwareengineerprogrammer 2877e3b
Revert temporary changes to GitHub Actions config in commits a424f3d1…
softwareengineerprogrammer 24136cb
test_economics_sam_pre_revenue.py py38 compat
softwareengineerprogrammer 1095839
Remove some now-obsolete/irrelevant commented code in EconomicsSam.py
softwareengineerprogrammer c6cbe4b
test_base_test_case.py py38 compat
softwareengineerprogrammer f07672a
fix apparent py38-specific log assertion issue - https://github.com/s…
softwareengineerprogrammer c204d3e
skip py38-problematic assertion entirely for now https://github.com/s…
softwareengineerprogrammer c42030f
try another approach to skip assertion in GHA py38...
softwareengineerprogrammer b4154ae
mark FIXME for previous commit
softwareengineerprogrammer 9fde332
add EconomicsSamPreRevenue to pre-commit config
softwareengineerprogrammer 5bbd23b
Normalize CAPEX schedule sum to 1.0.
softwareengineerprogrammer 422178e
regenerate schema
softwareengineerprogrammer c4c27d5
attempt to fix asserLogs py38 incompatibility
softwareengineerprogrammer 448463c
try scoping skip to py38 (again)
softwareengineerprogrammer fab5a17
drop '(IDC)' from Interest during construction param name
softwareengineerprogrammer 12e22db
Add Overnight Capital Cost (OCC) output parameter. Only display OCC/I…
softwareengineerprogrammer 8ccba78
update/enable multi-construction year logic in test_inflation_rate_du…
softwareengineerprogrammer dba6334
minor code readability cleanup
softwareengineerprogrammer 2616613
designate royalties sub tests
softwareengineerprogrammer af61f34
Adjust royalty holder NPV for multiple construction years
softwareengineerprogrammer 000e1cb
unit test add-ons with multiple construction years
softwareengineerprogrammer b43a201
Bump version: 3.10.10 → 3.10.11
softwareengineerprogrammer 91c8340
log value in warning instead of full param object
softwareengineerprogrammer b4b77b8
OCC test assertions
softwareengineerprogrammer 4e489f2
Fix Bond Financing Start Year off-by-one index implementation error. …
softwareengineerprogrammer 7d2309e
enhance tooltip text and increase test coverage
softwareengineerprogrammer 4d4cbb2
revert accidentally-included test stub
softwareengineerprogrammer b8eea24
Always display OCC for SAM-EM since inflation cost is included in Tot…
softwareengineerprogrammer ca2b936
fix unit test calculation to exclude OCC from expected total
softwareengineerprogrammer a9e6ee5
Bump version: 3.10.11 → 3.10.12
softwareengineerprogrammer 08860c7
Address FIXME to correct 'nan' to 'NaN' in IRR cash flow
softwareengineerprogrammer 54cfda9
regenerate examples with 'NaN' backfill fix (previous commit)
softwareengineerprogrammer a912950
fix output order of OCC/IDC (OCC first)
softwareengineerprogrammer 49a0149
Bump version: 3.10.12 → 3.10.13
softwareengineerprogrammer db603af
remove FIXME WIP marker from example_SAM-single-owner-PPA-5 (being tr…
softwareengineerprogrammer 3f34a4a
Address DeprecationWarning ("Please import from the namespace; the …
softwareengineerprogrammer 26032e1
drop redundant/quasi-conflicting summary line items from construction…
softwareengineerprogrammer e7add50
Bump version: 3.10.13 → 3.10.14
softwareengineerprogrammer bc6de48
Add 'Number of Fractures per Stimulated Well' parameter (https://gith…
softwareengineerprogrammer de45807
Address tooltip text TODO. Unit test parameter validation. Code cleanup.
softwareengineerprogrammer f1b6c29
validate that calculated total number of fractures does not exceed ma…
softwareengineerprogrammer b0ae714
Bump version: 3.10.14 → 3.10.15
softwareengineerprogrammer b5eacab
fix inspection supression
softwareengineerprogrammer 2ff0b03
Merge pull request #113 from softwareengineerprogrammer/number-of-fra…
softwareengineerprogrammer e9a3eb6
align default Number of Fractures per Stimulated Well with default Nu…
softwareengineerprogrammer 0b98bff
suppress capex schedule adjustment warning if Print Output to Console…
softwareengineerprogrammer 420ad6d
Bump version: 3.10.15 → 3.10.16
softwareengineerprogrammer 226bd86
Add example_SAM-single-owner-PPA-5 to README examples list
softwareengineerprogrammer 7eec16e
reference construction capex schedule in Construction Years tooltip
softwareengineerprogrammer d822bbe
Basic description for example_SAM-single-owner-PPA-5 - TODO to link t…
softwareengineerprogrammer 940b60c
add capex schedule, occ spend, and inflation cost line items to show …
softwareengineerprogrammer 9b94c03
rename 'Purchase of property' to 'Total capital expenditure'; show su…
softwareengineerprogrammer 05e3723
update test_multiple_construction_years - verify installation cost su…
softwareengineerprogrammer eb3769a
_calculate_pre_revenue_costs_and_cashflow basic test
softwareengineerprogrammer 99b5c39
Bump version: 3.10.16 → 3.10.17
softwareengineerprogrammer 9afec99
sam_cash_flow_total_after_tax_returns_all_years
softwareengineerprogrammer b71da68
WIP - update MOIC to account for construction years
softwareengineerprogrammer 47a4a6e
rename sam_cash_flow_profile_all_years to sam_cash_flow_profile (now …
softwareengineerprogrammer e3938bb
calculate MOIC from stitched pre-tax returns (TODO/WIP to pivot to af…
softwareengineerprogrammer 9703943
pivot SAM-EM MOIC to after-tax instead of pre-tax
softwareengineerprogrammer 48d4a0d
Adjust project payback period for multiple construction years
softwareengineerprogrammer 6b49630
Address PI=VI=VIR for SAM-EM MCY - calculation stays the same; update…
softwareengineerprogrammer a7169c9
regenerate example_SAM-single-owner-PPA-5 - updates payback period + PI
softwareengineerprogrammer 37f8fa9
comments cleanup (including removal of now-addressed NPV FIXME/WIP)
softwareengineerprogrammer f9ba093
remove nominal discount rate & WACC FIXME - existing calculation is a…
softwareengineerprogrammer 9a6c318
test_royalty_rate_with_multiple_construction_years
softwareengineerprogrammer a54df3d
test_sam_em_add_ons_with_multiple_construction_years
softwareengineerprogrammer 35b86b7
Merge pull request #114 from softwareengineerprogrammer/mcy-econ-outp…
softwareengineerprogrammer b3d52fe
Bump version: 3.10.17 → 3.10.18
softwareengineerprogrammer d000e38
address TODO to move assertAlmostEqualWithinSigFigs to BaseTestCase
softwareengineerprogrammer 7bf3416
Add Royalty Rate Escalation Start Year parameter
softwareengineerprogrammer 4b3281c
Mark TODOs for royalties percent & calendar year line items in SAM ca…
softwareengineerprogrammer fd8bb1d
Bump version: 3.10.18 → 3.10.19
softwareengineerprogrammer 9bf778a
insert royalty rate line item into SAM cash flow profile
softwareengineerprogrammer 7a790ec
test that royalty cash flows align with PPA revenue + royalty rate
softwareengineerprogrammer 1251a7a
Regenerate example_SAM-single-owner-PPA-4 - adds 'Royalty rate (%)' l…
softwareengineerprogrammer 35004c9
Bump version: 3.10.19 → 3.10.20
softwareengineerprogrammer 6f7f5b4
Merge pull request #115 from softwareengineerprogrammer/royalty-rate-…
softwareengineerprogrammer d33bf76
Tweak row names for Installed cost and Nominal capital expenditure to…
softwareengineerprogrammer a144c43
Bump version: 3.10.20 → 3.10.21
softwareengineerprogrammer 21e4857
stub MCY info in SAM-EM docs
softwareengineerprogrammer 1b7c256
MCY section incremental writeup
softwareengineerprogrammer 7405987
WIP - insert 'After-tax net cash flow ($)' row that backfilled IRR & …
softwareengineerprogrammer 3924dbe
Pivot 'Total after-tax returns [construction]' row name to 'After-tax…
softwareengineerprogrammer 22c60fb
fix Outputs.printoutput (enables intended behavior of making construc…
softwareengineerprogrammer 14c0282
fix issue with previous commit by addressing TODO to genericize boolP…
softwareengineerprogrammer 128d9f7
internal name refactoring per 3924dbef97eb8e68a97f4137267577f103daae93
softwareengineerprogrammer baff81b
Bump version: 3.10.21 → 3.10.22
softwareengineerprogrammer fc7b3d3
miscellaneous minor code cleanup
softwareengineerprogrammer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| [bumpversion] | ||
| current_version = 3.9.65 | ||
| current_version = 3.10.22 | ||
| commit = True | ||
| tag = True | ||
|
|
||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO