Skip to content

Conversation

@softwareengineerprogrammer
Copy link
Owner

@softwareengineerprogrammer softwareengineerprogrammer commented Nov 24, 2025

Description

Addresses NREL#406

Approach:

  1. Phased CAPEX Schedule → Total Installed Cost Equivalent
  2. Post-processor to calculate IRR, NPV, etc. from pre-revenue cashflow + SAM-calculated after-tax returns cash flow
SAM-EM MCY Design

Testing & Verification

  1. Unit tests added: https://github.com/softwareengineerprogrammer/GEOPHIRES/pull/112/files#diff-8bf8035525dcb8cb1f516ab6174d25f4fb43e04364a23937d443e5e55e2afb4a
  2. Unit tests updated: https://github.com/scientific-web-services/geophires-sws/pull/2/files#diff-afd6405a1fe39334a3befccfb8e1c2a6de10076dcef2731c48a7f0cf11aca3ac
  3. Manual testing:
    1. Tested in web interface
    2. Validated in consumer applications
image image

TODO:

  1. Update SAM Economic Models documentation
  2. LCOE/PV/LPPA
    1. Present value of annual costs ($)
    2. Present value of annual energy nominal (kWh)
    3. LCOE Levelized cost of energy nominal (cents/kWh)
    4. Present value of PPA revenue ($)
    5. LPPA Levelized PPA price nominal (cents/kWh)
  3. Bond Financing Start Year index off-by-one fix/disambiguation
  4. Correct 'nan' to 'NaN' (
    # FIXME TODO correct 'nan' to 'NaN' (either here or appropriate place in processing pipeline...)
    )
  5. _calculate_phased_capex_costs unit test(s)
  6. fix wonky web interface rendering of cash flow table
  7. Make warnings suppressable
  8. [tangential] missing plus:? Screenshot 2025-11-24 at 08 49 01

Done:

  1. Pre-revenue years debt/equity split schedule for e.g. 7-year construction with equity only for first 4 years, then debt/equity for next 3: Bond Financing Start Year: https://github.com/scientific-web-services/geophires-sws/pull/1/commits/0313a81b4cd9767dda0a20a1066a082d3c256bb9, https://github.com/scientific-web-services/geophires-sws/pull/2/commits/ef9d20c732adf03331da48a7e88d106019188bbf
  2. Spread CAPEX evenly over construction years if schedule not provided: https://github.com/scientific-web-services/geophires-sws/pull/2/commits/bca12aa6333c376763f691ff5124698239f41a58
  3. Backfill SAM cash flow table with phased capex and post-processed IRR/NPV/etc.: https://github.com/scientific-web-services/geophires-sws/pull/3
  4. Fix web interface handling of capex schedule
  5. Fix web interface max item size for longer construction periods
  6. Add Interest During Construction (IDC) output (9d22f32): 12b172d
  7. Revert temporary GHA config (https://github.com/softwareengineerprogrammer/GEOPHIRES/pull/112/files#diff-d8485ae5feb85d5310fbb669eca158cacafdba09b695a16d47720b69b9072e23R30): b292910, 2877e3b
  8. Confirm changes to Accrued financing during construction (backwards-incompatible behavioral change): Removed parameter since it's become ambiguous to the point of being misleading/inaccurate: 00e1b5e
  9. Phased CAPEX schedule parameter validation - normalize/warn if schedule doesn't add up to 100%: 5bbd23b
  10. Retain Total CAPEX output (for nominal total capex)/ Add Total Installation Cost output (for equivalent overnight installation cost (OCC)): 12e22db
  11. Enable pre-written multi-year construction tests (https://github.com/softwareengineerprogrammer/GEOPHIRES/pull/112/files#diff-894b10b737d88bd3c08bc3eaf69146781055586f575a582c09b5911feb891b38R610): 8ccba78
  12. py38 assertLogs incompatibility (https://github.com/softwareengineerprogrammer/GEOPHIRES/pull/112/files#diff-894b10b737d88bd3c08bc3eaf69146781055586f575a582c09b5911feb891b38R898-R907): Marked FIXME for now
  13. Tests for interactions with other features:
    1. Add-Ons: 000e1cb
    2. Royalties: af61f34

Change Checklist:

Observe the following checklist items if your change includes a new version (see versioning notes and version management docs).

Before merging:

  1. Add a CHANGELOG entry (example). RST Template:
M.m.P: `TITLE <https://github.com/NREL/GEOPHIRES-X/pull/PR-NUMBER>`__ | `release <https://github.com/NREL/GEOPHIRES-X/releases/tag/vM.m.P>`__

After merging:

  1. Push tag(s) to GitHub: git push origin refs/tags/vM.m.P
  2. Post a change announcement to the GEOPHIRES Change Announcements Discussion (example). Markdown template:
M.m.p: [TITLE](https://github.com/NREL/GEOPHIRES-X/pull/PR-NUMBER) | [release](https://github.com/NREL/GEOPHIRES-X/releases/tag/vM.m.P)

Originally self-reviewed in https://github.com/scientific-web-services/geophires-sws/pull/2 and #112

…WIP to adjust debt service and passed total installed cost to mimick phased capex outlay
…uction years (instead of explicitly specifying value)
…n as being incurred in Year 0 (WIP to likewise adjust accrued financing during construction)
…pre-existing convention - TBD how things shake out when Total CAPEX value is re-aligned to OCC as it was previously...
…ed with pre-existing convention - TBD how things shake out when Total CAPEX value is re-aligned to OCC as it was previously..."

This reverts commit cf7bc1b.
…truction convention - WIP: TODO to bump minor version and regenerated affected examples
…nterest Rate might be redundant with Inflated Bond Interest Rate
@softwareengineerprogrammer softwareengineerprogrammer added the enhancement New feature or request label Nov 24, 2025
…or total installed cost and issuance of equity are correct.
…ch wasn't successfully preventing attempted billing)"

This reverts commit e4c3faf.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants