diff --git a/.aiexclude b/.aiexclude index 03bd4129b..e6afc48b4 100644 --- a/.aiexclude +++ b/.aiexclude @@ -1 +1,3 @@ *.env +credentials +config diff --git a/.bumpversion.cfg b/.bumpversion.cfg index b90a7f340..96517dee2 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 3.12.1 +current_version = 3.13.0 commit = True tag = True diff --git a/.cookiecutterrc b/.cookiecutterrc index 73ee2c29d..f112082bb 100644 --- a/.cookiecutterrc +++ b/.cookiecutterrc @@ -54,7 +54,7 @@ default_context: sphinx_doctest: "no" sphinx_theme: "sphinx-py3doc-enhanced-theme" test_matrix_separate_coverage: "no" - version: 3.12.1 + version: 3.13.0 version_manager: "bump2version" website: "https://github.com/NREL" year_from: "2023" diff --git a/.gitignore b/.gitignore index e5c98addf..0e51b9742 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,10 @@ Geothermal_district_heating_system_with_peaking_boilers.png regenerate-schemas.sh requirements_2025-08-11.txt +tests/examples/example_SAM-single-owner-PPA-7_chp_cash-flow.csv +tests/examples/example_SAM-single-owner-PPA-8_heat_cash-flow.csv +tests/examples/example_SAM-single-owner-PPA-9_cooling_cash-flow.csv + # C extensions *.so @@ -116,9 +120,6 @@ _site/ /.github/workflows/workflows.7z tmp.patch -# TODO unignore once favicon is correctly configured -docs/_images/geophires-favicon.png - # Mypy Cache .mypy_cache/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ea79e7443..5dff8e903 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ # pre-commit install --install-hooks # To update the versions: # pre-commit autoupdate -exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg|src/geophires_x(?!/(GEOPHIRESv3|EconomicsSam|EconomicsSamCashFlow|EconomicsUtils|EconomicsSamPreRevenue|SurfacePlantUtils|NumpyUtils|UPPReservoir)\.py))(/|$)' +exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg|src/geophires_x(?!/(GEOPHIRESv3|EconomicsSam|EconomicsSamCashFlow|EconomicsUtils|EconomicsSamPreRevenue|EconomicsSamCalculations|SurfacePlantUtils|NumpyUtils|UPPReservoir)\.py))(/|$)' # Note the order is intentional to avoid multiple passes of the hooks repos: - repo: https://github.com/astral-sh/ruff-pre-commit diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 908574e34..f70c61d7f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,11 @@ Changelog GEOPHIRES v3 (2023-2026) ------------------------ +3.13 +^^^^ + +3.13: `SAM-EM: Support all End-Use Options (Direct-Use Heat and CHP/Cogeneration) and Absorption Chiller Surface Application `__ | `release `__ | `documentation `__ + 3.12 ^^^^ diff --git a/README.rst b/README.rst index 7acbc265f..6c4a0a847 100644 --- a/README.rst +++ b/README.rst @@ -58,9 +58,9 @@ Free software: `MIT license `__ :alt: Supported implementations :target: https://pypi.org/project/geophires-x -.. |commits-since| image:: https://img.shields.io/github/commits-since/softwareengineerprogrammer/GEOPHIRES-X/v3.12.1.svg +.. |commits-since| image:: https://img.shields.io/github/commits-since/softwareengineerprogrammer/GEOPHIRES-X/v3.13.0.svg :alt: Commits since latest release - :target: https://github.com/softwareengineerprogrammer/GEOPHIRES-X/compare/v3.12.1...main + :target: https://github.com/softwareengineerprogrammer/GEOPHIRES-X/compare/v3.13.0...main .. |docs| image:: https://readthedocs.org/projects/GEOPHIRES-X/badge/?style=flat :target: https://softwareengineerprogrammer.github.io/GEOPHIRES @@ -348,6 +348,34 @@ Example-specific web interface deeplinks are listed in the Link column. - `example_SAM-single-owner-PPA-6_carbon-revenue.txt `__ - `.out `__ - `link `__ + * - SAM Single Owner PPA: CHP + - `example_SAM-single-owner-PPA-7_chp.txt `__ + - `.out `__ + - `link `__ + * - SAM Single Owner PPA: CHP with Carbon Credits + - `example_SAM-single-owner-PPA-7b_chp-cc.txt `__ + - `.out `__ + - `link `__ + * - SAM Single Owner PPA: CHP with Surface Plant Capital Cost + - `example_SAM-single-owner-PPA-7c.txt `__ + - `.out `__ + - `link `__ + * - SAM Single Owner PPA: CHP: Bottoming Cycle + - `example_SAM-single-owner-PPA-7d_chp-bottoming.txt `__ + - `.out `__ + - `link `__ + * - SAM Single Owner PPA: CHP: Parallel Cycle + - `example_SAM-single-owner-PPA-7e_chp-parallel.txt `__ + - `.out `__ + - `link `__ + * - SAM Single Owner PPA: Direct-Use Heat + - `example_SAM-single-owner-PPA-8_heat.txt `__ + - `.out `__ + - `link `__ + * - SAM Single Owner PPA: Cooling + - `example_SAM-single-owner-PPA-9_cooling.txt `__ + - `.out `__ + - `link `__ .. raw:: html diff --git a/docs/SAM-EM_End-Uses-and-Surface-Applications.md b/docs/SAM-EM_End-Uses-and-Surface-Applications.md new file mode 100644 index 000000000..c1ecec944 --- /dev/null +++ b/docs/SAM-EM_End-Uses-and-Surface-Applications.md @@ -0,0 +1,86 @@ +# SAM Economic Models: End Uses and Surface Applications + +[SAM Economic Models](SAM-Economic-Models.html) support a variety of geothermal end-use options and surface applications. + +See the [Theoretical Basis for GEOPHIRES End-use options documentation](Theoretical-Basis-for-GEOPHIRES.html#enduse-options) +for details on the underlying physical simulation mechanics. + +## Electricity + +For pure electricity generation configurations, SAM Economic Models calculate standard project finance metrics, +including a nominal Levelized Cost of Electricity (LCOE). + +### Examples: + +1. [example_SAM-single-owner-PPA](https://gtp.scientificwebservices.com/geophires?geophires-example-id=example_SAM-single-owner-PPA): 50 MWe +1. [example_SAM-single-owner-PPA-6_carbon-revenue](https://gtp.scientificwebservices.com/geophires?geophires-example-id=example_SAM-single-owner-PPA-6_carbon-revenue): Electricity with Carbon Credits + +See [SAM Economic Models documentation](SAM-Economic-Models.html#examples) for additional electricity examples. + +## Direct-Use Heat + +Direct-use heat configurations evaluate pure thermal energy extraction, reporting financial viability via the nominal +Levelized Cost of Heat (LCOH) in $/MMBTU. +Heat revenue is modeled as capacity payment revenue and included as the `Heat revenue ($)` cash flow line item. + +### Grid Electricity Consumption and Cash Flow Reporting + +In GEOPHIRES, pure direct-use heat and cooling configurations +typically require parasitic pumping power purchased from the grid. The cost of this grid electricity is calculated +and fully accounted for within GEOPHIRES' baseline OPEX calculations prior to executing the SAM financial engine. + +Because these costs are injected directly into the fixed O&M parameters passed to SAM, SAM's native grid-purchase +mechanisms are bypassed. Consequently, the specific cash flow line items for `Electricity from grid (kWh)` +and `Electricity purchase ($)` are intentionally removed from the final SAM cash flow profile report. +This prevents the display of default zero values, which could otherwise mislead analysts into assuming parasitic power +costs were omitted. + +### Examples: + +1. [example_SAM-single-owner-PPA-8_heat](https://gtp.scientificwebservices.com/geophires?geophires-example-id=example_SAM-single-owner-PPA-8_heat): Direct-Use Heat + +## Cogeneration + +Combined Heat and Power (CHP) end-uses simulate both electricity and direct-use heat generation. +The model outputs allocated metrics for both product streams, including `Electricity CAPEX ($/kWe)`, `Heat CAPEX ($/kWth)`, LCOE, and LCOH. + +### CHP Cost Allocation Ratio + +To separate the levelized costs of electricity and heat, GEOPHIRES utilizes the `CHP Electrical Plant Cost Allocation Ratio`. +When calculating the levelized metrics, the total present value of annual costs includes not only CAPEX, but also OPEX, +taxes, and debt service. By applying a CAPEX-derived allocation ratio to this total present value, the model +mathematically forces the assumption that thermal OPEX and financing burdens scale exactly proportionally to thermal CAPEX. +If the electrical power plant has a high O&M burden and the direct-use heat component has a relatively low O&M burden, +applying the CAPEX ratio to the total PV will artificially inflate the LCOH and artificially lower the LCOE. +Analysts should be aware of this proportional scaling approximation when evaluating granular CHP OPEX profiles. + +### Injection Temperature and CHP Topping Cycles + +In GEOPHIRES, adjusting the `Injection Temperature` for a Cogeneration Topping Cycle will affect the amount of direct-use heat produced, but it will **not** affect electricity production. + +This is the physically correct behavior. In a topping cycle, the geofluid flows sequentially: it first passes through the power plant (which extracts heat to generate electricity and rejects the fluid at a calculated thermodynamic exhaust temperature), and then passes through the direct-use application (which extracts the residual heat down to the user-defined `Injection Temperature`). + +Because the power plant sits upstream, its electricity production is governed entirely by the production temperature and its own exhaust temperature. Lowering the `Injection Temperature` simply increases the temperature delta across the downstream direct-use application, yielding more heat without altering the upstream power cycle. + +### Examples: + +1. [example_SAM-single-owner-PPA-7_chp](https://gtp.scientificwebservices.com/geophires?geophires-example-id=example_SAM-single-owner-PPA-7_chp): Combined Heat and Power (CHP): Cogeneration Topping Cycle +1. [example_SAM-single-owner-PPA-7b_chp-cc](https://gtp.scientificwebservices.com/geophires?geophires-example-id=example_SAM-single-owner-PPA-7b_chp-cc): Combined Heat and Power (CHP): Carbon Credits +1. [example_SAM-single-owner-PPA-7c](https://gtp.scientificwebservices.com/geophires?geophires-example-id=example_SAM-single-owner-PPA-7c): Combined Heat and Power (CHP): Carbon Credits with fixed Surface Plant Capital Cost +1. [example_SAM-single-owner-PPA-7d_chp-bottoming](https://gtp.scientificwebservices.com/geophires?geophires-example-id=example_SAM-single-owner-PPA-7d_chp-bottoming): Combined Heat and Power (CHP): Cogeneration Bottoming Cycle +1. [example_SAM-single-owner-PPA-7e_chp-parallel](https://gtp.scientificwebservices.com/geophires?geophires-example-id=example_SAM-single-owner-PPA-7d_chp-parallel): Combined Heat and Power (CHP): Cogeneration Parallel Cycle + +## Absorption Chiller (Cooling) + +Cooling applications via absorption chillers are supported, providing a nominal Levelized Cost of Cooling (LCOC) in +$/MMBTU. Cooling revenue is modeled as capacity payment revenue and included as the `Cooling revenue ($)` cash flow line item. +Like Direct-Use Heat, parasitic electricity requirements are factored into the baseline OPEX prior to +SAM execution. + +### Examples: + +1. [example_SAM-single-owner-PPA-9_cooling](https://gtp.scientificwebservices.com/geophires?geophires-example-id=example_SAM-single-owner-PPA-9_cooling): Cooling (Direct-Use Heat with Absorption Chiller Surface Application) + +## Limitations + +Heat Pump, District Heating, and Reservoir Thermal Energy Storage (SUTRA) surface applications are not currently supported for SAM Economic Models. diff --git a/docs/SAM-Economic-Models.md b/docs/SAM-Economic-Models.md index b506538ce..aecc40d1b 100644 --- a/docs/SAM-Economic-Models.md +++ b/docs/SAM-Economic-Models.md @@ -34,6 +34,8 @@ The following table describes how GEOPHIRES parameters are transformed into SAM | `Starting Electricity Sale Price`, `Ending Electricity Sale Price`, `Electricity Escalation Rate Per Year`, `Electricity Escalation Start Year` | Revenue | `PPA price` | `Singleowner` | `ppa_price_input` | GEOPHIRES's pricing model is used to create a PPA price schedule that is passed to SAM. | | `Total AddOn Profit Gained` | Revenue → Capacity Payments | `Fixed amount`, `Capacity payment amount` | `Singleowner` | `cp_capacity_payment_type = 1`, `cp_capacity_payment_amount` | | | `Starting Carbon Credit Value`, `Ending Carbon Credit Value`, `Carbon Escalation Rate Per Year`, `Carbon Escalation Start Year` | Revenue → Capacity Payments | `Fixed amount`, `Capacity payment amount` | `Singleowner` | `cp_capacity_payment_type = 1`, `cp_capacity_payment_amount` | | +| `Starting Heat Sale Price`, `Ending Heat Sale Price`, `Heat Escalation Rate Per Year`, `Heat Escalation Start Year` | Revenue → Capacity Payments | `Fixed amount`, `Capacity payment amount` | `Singleowner` | `cp_capacity_payment_type = 1`, `cp_capacity_payment_amount` | | +| `Starting Cooling Sale Price`, `Ending Cooling Sale Price`, `Cooling Escalation Rate Per Year`, `Cooling Escalation Start Year` | Revenue → Capacity Payments | `Fixed amount`, `Capacity payment amount` | `Singleowner` | `cp_capacity_payment_type = 1`, `cp_capacity_payment_amount` | | | `Investment Tax Credit Rate` | Incentives → Investment Tax Credit (ITC) | `Federal` → `Percentage (%)` | `Singleowner` | `itc_fed_percent` | Note that unlike the BICYCLE Economic Model's `Total capital costs`, SAM Economic Model's `Total CAPEX` is the total installed cost and does not subtract ITC value (if present). | | `Production Tax Credit Electricity` | Incentives → Production Tax Credit (PTC) | `Federal` → `Amount ($/kWh)` | `Singleowner` | `ptc_fed_amount` | .. N/A | | `Production Tax Credit Duration` | Incentives → Production Tax Credit (PTC) | `Federal` → `Term (years)` | `Singleowner` | `ptc_fed_term` | .. N/A | @@ -51,7 +53,7 @@ The following table describes how GEOPHIRES parameters are transformed into SAM ### Limitations -1. Only Electricity end-use is supported +1. The following power plant types/surface applications are not supported: Heat Pump, District Heating, and Reservoir Thermal Energy Storage (SUTRA). Subcritical ORC, Supercritical ORC, Single Flash, Double Flash, Industrial heat, and Absorption Chiller power plant types are supported. 2. Add-ons with electricity and heat are not currently supported. (Add-ons CAPEX, OPEX, and profit are supported.) ## Multiple Construction Years @@ -140,25 +142,31 @@ See relevant parameters and outputs in [GEOPHIRES Parameters documentation](para 1. `Current Grid CO2 production` 1. `Total Avoided Carbon Emissions` -## Examples +## End Uses and Surface Applications -### Case Study: 500 MWe EGS Project Modeled on Fervo Cape Station +SAM Economic Models support a variety of geothermal end-use options and surface applications, extending beyond pure electricity generation to include: -[Web interface link](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=Fervo_Project_Cape-5) +* **Electricity** +* **Direct-Use Heat** +* **Cogeneration** (Combined Heat and Power; CHP) +* **Cooling** (Absorption Chiller) -Documentation: [Case Study: 500 MWe EGS Project Modeled on Fervo Cape Station](Fervo_Project_Cape-4.html). +For detailed information on how these different configurations are modeled financially—including cash flow reporting adjustments, CHP cost allocation methodologies, and configuration-specific examples—see the [SAM Economic Models: End Uses and Surface Applications documentation](SAM-EM_End-Uses-and-Surface-Applications.html). -### SAM Single Owner PPA +## Examples +1. [Case Study: 500 MWe EGS Project Modeled on Fervo Cape Station](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=Fervo_Project_Cape-5) | [Case Study Documentation](Fervo_Project_Cape-5.html) 1. [SAM Single Owner PPA: 50 MWe](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA) -2. [SAM Single Owner PPA: 50 MWe with Add-ons](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-3) -3. [SAM Single Owner PPA: 50 MWe with Royalties](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-4) -4. [SAM Economic Model: Royalty Schedule & Supplemental Payments](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-4b) -4. [SAM Economic Model Multiple Construction Years](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-5) - -### SAM Single Owner PPA: 400 MWe BICYCLE Comparison - -[Web interface link](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-2) +1. [50 MWe with Add-ons](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-3) +1. [50 MWe with Royalties](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-4) +1. [Royalty Schedule & Supplemental Payments](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-4b) +1. [Multiple Construction Years](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-5) +1. [Carbon Credits](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-6_carbon-revenue) +1. [Cogeneration (Combined Heat and Power; CHP)](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-7_chp) +1. [CHP with Carbon Credits](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-7b_chp-cc) +1. [Direct-Use Heat](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-8_heat) +1. [Cooling (Absorption Chiller)](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-9_cooling) +1. [SAM Single Owner PPA: 400 MWe BICYCLE Comparison](https://gtp.scientificwebservices.com/geophires/?geophires-example-id=example_SAM-single-owner-PPA-2) ## Re-creating SAM Economic Model Results in the SAM Desktop Application diff --git a/docs/conf.py b/docs/conf.py index 862a6b829..8421cd100 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,7 +18,7 @@ year = '2025' author = 'NREL' copyright = f'{year}, {author}' -version = release = '3.12.1' +version = release = '3.13.0' pygments_style = 'trac' templates_path = ['./templates'] diff --git a/setup.py b/setup.py index 190b2079b..32244b0a1 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ def read(*names, **kwargs): setup( name='geophires-x', - version='3.12.1', + version='3.13.0', license='MIT', description='GEOPHIRES is a free and open-source geothermal techno-economic simulator.', long_description='{}\n{}'.format( diff --git a/src/geophires_x/AGSEconomics.py b/src/geophires_x/AGSEconomics.py index 21760e1c0..bd753d524 100644 --- a/src/geophires_x/AGSEconomics.py +++ b/src/geophires_x/AGSEconomics.py @@ -62,6 +62,8 @@ def __init__(self, model: Model): Required=True, ErrMessage="assume default Operation & Maintenance cost of surface plant expressed as fraction of total surface plant capital cost (0.015)" ) + + # TODO migrate to parent class and integrate for CHP self.Direct_use_heat_cost_per_kWth = self.ParameterDict[ self.Direct_use_heat_cost_per_kWth.Name] = floatParameter( "Capital Cost for Surface Plant for Direct-use System", diff --git a/src/geophires_x/Economics.py b/src/geophires_x/Economics.py index 4d7d4793c..53a8851d9 100644 --- a/src/geophires_x/Economics.py +++ b/src/geophires_x/Economics.py @@ -9,13 +9,15 @@ import geophires_x.Model as Model from geophires_x import EconomicsSam -from geophires_x.EconomicsSam import calculate_sam_economics, SamEconomicsCalculations +from geophires_x.EconomicsSam import calculate_sam_economics +from geophires_x.EconomicsSamCalculations import SamEconomicsCalculations from geophires_x.EconomicsUtils import BuildPricingModel, wacc_output_parameter, nominal_discount_rate_parameter, \ real_discount_rate_parameter, after_tax_irr_parameter, moic_parameter, project_vir_parameter, \ project_payback_period_parameter, inflation_cost_during_construction_output_parameter, \ interest_during_construction_output_parameter, total_capex_parameter_output_parameter, \ overnight_capital_cost_output_parameter, CONSTRUCTION_CAPEX_SCHEDULE_PARAMETER_NAME, \ - _YEAR_INDEX_VALUE_EXPLANATION_SNIPPET, investment_tax_credit_output_parameter, expand_schedule_dsl + _YEAR_INDEX_VALUE_EXPLANATION_SNIPPET, investment_tax_credit_output_parameter, expand_schedule_dsl, \ + lcoh_output_parameter, lcoc_output_parameter from geophires_x.GeoPHIRESUtils import quantity from geophires_x.OptionList import Configuration, WellDrillingCostCorrelation, EconomicModel, EndUseOptions, PlantType, \ _WellDrillingCostCorrelationCitation @@ -215,19 +217,25 @@ def CalculateTotalRevenue(plantlifetime: int, ConstructionYears: int, CAPEX: flo return CashFlow, CummCashFlow -def CalculateRevenue(plantlifetime: int, ConstructionYears: int, Energy, Price): +def CalculateRevenue(plantlifetime: int, ConstructionYears: int, Energy: list[float], Price: list[float]) \ + -> tuple[list[float], list[float]]: """ CalculateRevenue calculates the revenue stream for the project. It is used to calculate the revenue stream for the project. # note this doesn't account for OPEX + :param plantlifetime: The lifetime of the project in years in years (not including construction years) in years :type plantlifetime: int + :param ConstructionYears: The number of years of construction for the project in years :type ConstructionYears: int + :param Energy: The energy production array for the project in kWh :type Energy: list + :param Price: The price model array for the project in $/kWh :type Price: list + :return: CashFlow: The annual cash flow for the project in MUSD and CummCashFlow: The cumulative cash flow for the project in MUSD :rtype: list @@ -365,6 +373,7 @@ def CalculateLCOELCOHLCOC(econ, model: Model) -> tuple[float, float, float]: :return: LCOE: The levelized cost of electricity and LCOH: The levelized cost of heat and LCOC: The levelized cost of cooling :rtype: tuple[float, float, float] """ + LCOE = LCOH = LCOC = 0.0 CCap_elec = (econ.CCap.value * econ.CAPEX_heat_electricity_plant_ratio.value) Coam_elec = (econ.Coam.value * econ.CAPEX_heat_electricity_plant_ratio.value) @@ -406,12 +415,7 @@ def _construction_inflation_cost_elec_heat() -> tuple[float, float]: model.surfaceplant.HeatkWhProduced.value) * 1E8 # cents/kWh LCOH = LCOH * 2.931 # $/Million Btu # co-gen - elif model.surfaceplant.enduse_option.value in [EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT, - EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY]: + elif model.surfaceplant.enduse_option.value.is_cogeneration_end_use_option: capex_elec_plus_infl, capex_heat_plus_infl = _construction_inflation_cost_elec_heat() LCOE = (econ.FCR.value * capex_elec_plus_infl + Coam_elec) / np.average(model.surfaceplant.NetkWhProduced.value) * 1E8 # cents/kWh LCOH = (econ.FCR.value * capex_heat_plus_infl + Coam_heat + econ.averageannualpumpingcosts.value) / np.average(model.surfaceplant.HeatkWhProduced.value) * 1E8 # cents/kWh @@ -430,6 +434,7 @@ def _construction_inflation_cost_elec_heat() -> tuple[float, float]: LCOH = (econ.FCR.value * capex_total_plus_infl + econ.Coam.value + econ.averageannualpumpingcosts.value + econ.averageannualngcost.value) / model.surfaceplant.annual_heating_demand.value * 1E2 # cents/kWh LCOH = LCOH * 2.931 # $/Million Btu + elif econ.econmodel.value == EconomicModel.STANDARDIZED_LEVELIZED_COST: discount_vector = 1. / np.power(1 + econ.discountrate.value, np.linspace(0, model.surfaceplant.plant_lifetime.value - 1, @@ -450,12 +455,7 @@ def _construction_inflation_cost_elec_heat() -> tuple[float, float]: LCOH = LCOH * 2.931 # $/MMBTU # co-gen - elif model.surfaceplant.enduse_option.value in [EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT, - EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY]: + elif model.surfaceplant.enduse_option.value.is_cogeneration_end_use_option: capex_elec_plus_infl, capex_heat_plus_infl = _construction_inflation_cost_elec_heat() LCOE = (capex_elec_plus_infl + np.sum(Coam_elec * discount_vector)) / np.sum(model.surfaceplant.NetkWhProduced.value * discount_vector) * 1E8 # cents/kWh @@ -484,11 +484,36 @@ def _construction_inflation_cost_elec_heat() -> tuple[float, float]: econ.annualngcost.value) * discount_vector)) / np.sum( model.surfaceplant.annual_heating_demand.value * discount_vector) * 1E2 # cents/kWh LCOH = LCOH * 2.931 # $/Million Btu + elif econ.econmodel.value == EconomicModel.SAM_SINGLE_OWNER_PPA: - # Designated as nominal (as opposed to real) in parameter tooltip text - LCOE = econ.sam_economics_calculations.lcoe_nominal.quantity().to(convertible_unit(econ.LCOE.CurrentUnits.value)).magnitude + if model.surfaceplant.enduse_option.value.has_electricity_component: + # Designated as nominal (as opposed to real) in parameter tooltip text + LCOE = econ.sam_economics_calculations.lcoe_nominal.quantity().to( + convertible_unit(econ.LCOE.CurrentUnits.value)).magnitude + + if model.surfaceplant.enduse_option.value.has_direct_use_heat_component: + if econ.sam_economics_calculations.lcoh_nominal.value is not None: + # Designated as nominal (as opposed to real) in parameter tooltip text + LCOH = econ.sam_economics_calculations.lcoh_nominal.quantity().to( + convertible_unit(econ.LCOH.CurrentUnits.value)).magnitude + else: + # TODO probably should not happen; relevant to + # https://github.com/NatLabRockies/GEOPHIRES-X/issues/452?title=Deduplicate+calls+to+calculate_pre_revenue_costs_and_cashflow + pass + + if econ.sam_economics_calculations.lcoc_nominal.value is not None: + # Designated as nominal (as opposed to real) in parameter tooltip text + LCOC = econ.sam_economics_calculations.lcoc_nominal.quantity().to( + convertible_unit(econ.LCOC.CurrentUnits.value)).magnitude + else: - # must be BICYCLE + if econ.econmodel.value != EconomicModel.BICYCLE: + model.logger.error( + f'Unrecognized economic model: {econ.econmodel.value}. ' + f'Treating as {EconomicModel.BICYCLE.value} for LCOE/LCOH/LCOC calculations.' + ) + # Error is logged instead of raising an exception for backwards compatibility. + # average return on investment (tax and inflation adjusted) i_ave = econ.FIB.value * econ.BIR.value * (1 - econ.CTR.value) + (1 - econ.FIB.value) * econ.EIR.value # capital recovery factor @@ -513,12 +538,7 @@ def _construction_inflation_cost_elec_heat() -> tuple[float, float]: LCOH = (NPV_cap + NPV_oandm + NPV_fc + NPV_it + NPV_grt - NPV_itc) / np.sum(model.surfaceplant.HeatkWhProduced.value * inflation_vector * discount_vector) * 1E8 LCOH = LCOH * 2.931 # $/MMBTU # co-gen - elif model.surfaceplant.enduse_option.value in [EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT, - EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY]: + elif model.surfaceplant.enduse_option.value.is_cogeneration_end_use_option: capex_elec_plus_infl, capex_heat_plus_infl = _construction_inflation_cost_elec_heat() NPVcap_elec = np.sum(capex_elec_plus_infl * CRF * discount_vector) @@ -1867,11 +1887,8 @@ def __init__(self, model: Model): ) # local variable initialization - self.CAPEX_cost_electricity_plant = 0.0 - self.CAPEX_cost_heat_plant = 0.0 - self.OPEX_cost_electricity_plant = 0.0 - self.OPEX_cost_heat_plant = 0.0 - self.CAPEX_heat_electricity_plant_ratio.value = 0.0 + self.OPEX_cost_electricity_plant = 0.0 # TODO should be proper output parameter + self.OPEX_cost_heat_plant = 0.0 # TODO should be proper output parameter self.Claborcorrelation = 0.0 self.Cpumps = 0.0 self.annualelectricityincome = 0.0 @@ -1911,13 +1928,7 @@ def __init__(self, model: Model): CurrentUnits=CostPerMassUnit.DOLLARSPERLB ) - self.LCOC = self.OutputParameterDict[self.LCOC.Name] = OutputParameter( - Name="LCOC", - display_name='Direct-Use Cooling Breakeven Price (LCOC)', - UnitType=Units.ENERGYCOST, - PreferredUnits=EnergyCostUnit.DOLLARSPERMMBTU, - CurrentUnits=EnergyCostUnit.DOLLARSPERMMBTU - ) + self.LCOC = self.OutputParameterDict[self.LCOC.Name] = lcoc_output_parameter() self.LCOE = self.OutputParameterDict[self.LCOE.Name] = OutputParameter( Name="LCOE", @@ -1927,13 +1938,7 @@ def __init__(self, model: Model): CurrentUnits=EnergyCostUnit.CENTSSPERKWH, ToolTipText="For SAM economic models, this is the nominal LCOE value (as opposed to real)." ) - self.LCOH = self.OutputParameterDict[self.LCOH.Name] = OutputParameter( - Name="LCOH", - display_name='Direct-Use heat breakeven price (LCOH)', - UnitType=Units.ENERGYCOST, - PreferredUnits=EnergyCostUnit.DOLLARSPERMMBTU, # $/MMBTU - CurrentUnits=EnergyCostUnit.DOLLARSPERMMBTU - ) + self.LCOH = self.OutputParameterDict[self.LCOH.Name] = lcoh_output_parameter() stimulation_contingency_and_indirect_costs_tooltip = ( f'plus {self.contingency_percentage.quantity().to(convertible_unit("%")).magnitude:g}% contingency ' @@ -2027,6 +2032,7 @@ def __init__(self, model: Model): f'The total is then divided over {model.surfaceplant.plant_lifetime.Name} years to calculate ' f'Redrilling costs per year.' ) + # noinspection SpellCheckingInspection self.Cplant = self.OutputParameterDict[self.Cplant.Name] = OutputParameter( Name="Surface Plant cost", @@ -2068,6 +2074,22 @@ def __init__(self, model: Model): 'their specific application. Beckers and Young (2017) collected several cost figures to ' 'estimate the surface equipment cost for geothermal district-heating systems.' ) + + self.CAPEX_cost_electrical_plant = self.OutputParameterDict[self.CAPEX_cost_electrical_plant.Name] = OutputParameter( + Name='Electrical Plant cost', + display_name='of which Electrical Plant Cost', + UnitType=Units.CURRENCY, + PreferredUnits=CurrencyUnit.MDOLLARS, + CurrentUnits=CurrencyUnit.MDOLLARS, + ) + self.CAPEX_cost_heat_plant= self.OutputParameterDict[self.CAPEX_cost_heat_plant.Name] = OutputParameter( + Name='Heat Plant cost', + display_name='of which Heat Plant Cost', + UnitType=Units.CURRENCY, + PreferredUnits=CurrencyUnit.MDOLLARS, + CurrentUnits=CurrencyUnit.MDOLLARS, + ) + self.Coamplant = self.OutputParameterDict[self.Coamplant.Name] = OutputParameter( Name="O&M Surface Plant costs", display_name='Power plant maintenance costs', @@ -2107,6 +2129,7 @@ def __init__(self, model: Model): 'user or a district-heating system. These costs are estimated at $750 per meter pipeline ' 'length and can be manually added by the user to the pipeline distribution costs.' ) + self.Cpiping = self.OutputParameterDict[self.Cpiping.Name] = OutputParameter( Name="Transmission pipeline costs", display_name='Transmission pipeline cost', @@ -2114,6 +2137,15 @@ def __init__(self, model: Model): PreferredUnits=CurrencyUnit.MDOLLARS, CurrentUnits=CurrencyUnit.MDOLLARS ) + + self.surface_equipment_costs_total = self.OutputParameterDict[self.surface_equipment_costs_total.Name] = OutputParameter( + Name='Total surface equipment costs', + UnitType=Units.CURRENCY, + PreferredUnits=CurrencyUnit.MDOLLARS, + CurrentUnits=CurrencyUnit.MDOLLARS, + ToolTipText=f'{self.Cplant.Name} plus {self.Cgath.Name} plus {self.Cpiping.Name}.' + ) + self.Coamwater = self.OutputParameterDict[self.Coamwater.Name] = OutputParameter( Name="O&M Make-up Water costs", display_name='Water costs', @@ -2132,7 +2164,7 @@ def __init__(self, model: Model): CurrentUnits=CurrencyUnit.MDOLLARS, ) self.capex_total = self.OutputParameterDict[self.capex_total.Name] = total_capex_parameter_output_parameter() - self.capex_total_per_kw = self.OutputParameterDict[self.capex_total_per_kw.Name] = OutputParameter( + self.capex_total_per_kwe = self.OutputParameterDict[self.capex_total_per_kwe.Name] = OutputParameter( Name="Total CAPEX ($/kW)", UnitType=Units.ENERGYCOST, PreferredUnits=EnergyCostUnit.DOLLARSPERKW, @@ -2143,6 +2175,34 @@ def __init__(self, model: Model): 'It reflects all direct and indirect costs, contingency, and applicable cost escalations ' 'included in the base Total CAPEX.', ) + self.capex_allocated_per_kwe = self.OutputParameterDict[self.capex_allocated_per_kwe.Name] = OutputParameter( + Name="Electricity CAPEX ($/kWe)", + UnitType=Units.ENERGYCOST, + PreferredUnits=EnergyCostUnit.DOLLARSPERKW, + CurrentUnits=EnergyCostUnit.DOLLARSPERKW, + ToolTipText='The portion of total capital expenditure (CAPEX) allocated specifically ' + 'to electricity generation, normalized per kilowatt of net electrical capacity (kWe). ' + 'In cogeneration (CHP) scenarios, this is calculated by multiplying the Total CAPEX by the ' + 'electrical plant cost allocation ratio, divided by the maximum net electricity generation.' + ) + self.capex_allocated_per_kwth = self.OutputParameterDict[self.capex_allocated_per_kwth.Name] = OutputParameter( + Name="Heat CAPEX ($/kWth)", + UnitType=Units.ENERGYCOST, + PreferredUnits=EnergyCostUnit.DOLLARSPERKW, + CurrentUnits=EnergyCostUnit.DOLLARSPERKW, + ToolTipText='The portion of total capital expenditure (CAPEX) allocated specifically to direct-use heat ' + 'production, normalized per kilowatt of net thermal capacity (kWth). In cogeneration (CHP) ' + 'scenarios, this is calculated by multiplying the Total CAPEX by the thermal plant cost ' + 'allocation ratio (1 minus the electrical ratio), divided by the maximum net heat production.' + ) + + self.chp_percent_cost_allocation_for_electrical_plant = self.OutputParameterDict[self.chp_percent_cost_allocation_for_electrical_plant.Name] = OutputParameter( + Name='CHP: Percent cost allocation for electrical plant', + UnitType=Units.PERCENT, + PreferredUnits=PercentUnit.PERCENT, + CurrentUnits=PercentUnit.PERCENT, + ToolTipText=self.CAPEX_heat_electricity_plant_ratio.ToolTipText, + ) # noinspection SpellCheckingInspection self.Coam = self.OutputParameterDict[self.Coam.Name] = OutputParameter( @@ -2155,12 +2215,16 @@ def __init__(self, model: Model): f'make-up water, pumping O&M costs, ' f'and average royalty costs (both production-based and supplemental payments).' ) - self.averageannualpumpingcosts = OutputParameter( - Name="Average Annual Pumping Costs", + + # noinspection SpellCheckingInspection + self.averageannualpumpingcosts = self.OutputParameterDict[self.averageannualpumpingcosts.Name] = OutputParameter( + Name='Average Annual Pumping Costs', + display_name='Average Reservoir Pumping Cost', UnitType=Units.CURRENCYFREQUENCY, PreferredUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR, CurrentUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR ) + # heat pump self.averageannualheatpumpelectricitycost = self.OutputParameterDict[ self.averageannualheatpumpelectricitycost.Name] = OutputParameter( @@ -2403,6 +2467,7 @@ def __init__(self, model: Model): self.jobs_created = self.OutputParameterDict[self.jobs_created.Name] = OutputParameter( Name="Estimated Jobs Created", UnitType=Units.NONE, + # TODO tooltip text derived from corresponding input parameter ) # Results for the Royalty Holder @@ -2442,6 +2507,15 @@ def __init__(self, model: Model): model.logger.info(f'Complete {__class__!s}: {sys._getframe().f_code.co_name}') + @property + def CAPEX_cost_electricity_plant_musd(self) -> float: + return self.CAPEX_cost_electrical_plant.quantity().to('MUSD').magnitude + + @property + def CAPEX_cost_heat_plant_musd(self) -> float: + return self.CAPEX_cost_heat_plant.quantity().to('MUSD').magnitude + + def read_parameters(self, model: Model) -> None: """ read_parameters read and update the Economics parameters and handle the special cases @@ -2738,6 +2812,16 @@ def _warn(_msg: str) -> None: convertible_unit(self.accrued_financing_during_construction_percentage.CurrentUnits) ).magnitude + if not self.CAPEX_heat_electricity_plant_ratio.Provided: + def _set_ratio(frac: float) -> None: + self.CAPEX_heat_electricity_plant_ratio.value = quantity(frac, 'dimensionless').to( + convertible_unit(self.CAPEX_heat_electricity_plant_ratio.CurrentUnits)).magnitude + + if model.surfaceplant.enduse_option.value == EndUseOptions.ELECTRICITY: + _set_ratio(1.0) + elif model.surfaceplant.enduse_option.value == EndUseOptions.HEAT: + _set_ratio(0.0) + model.logger.info(f'complete {__class__!s}: {sys._getframe().f_code.co_name}') def sync_interest_rate(self, model): @@ -3009,6 +3093,8 @@ def calculate_field_gathering_costs(self, model: Model) -> None: (model.wellbores.nprod.value + model.wellbores.ninj.value) * 750 * 500. + self.Cpumps) / 1E6 def calculate_plant_costs(self, model: Model) -> None: + direct_use_heat_default_cost_musd_per_kwth = 250E-6 # TODO parameterize + # plant costs if (model.surfaceplant.enduse_option.value == EndUseOptions.HEAT and model.surfaceplant.plant_type.value not in [PlantType.ABSORPTION_CHILLER, PlantType.HEAT_PUMP, PlantType.DISTRICT_HEATING]): # direct-use @@ -3018,7 +3104,7 @@ def calculate_plant_costs(self, model: Model) -> None: self.Cplant.value = (self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value - * 250E-6 + * direct_use_heat_default_cost_musd_per_kwth * np.max(model.surfaceplant.HeatExtracted.value) * 1000.) @@ -3031,15 +3117,18 @@ def calculate_plant_costs(self, model: Model) -> None: self.Cplant.value = (self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value - * 250E-6 + * direct_use_heat_default_cost_musd_per_kwth * np.max(model.surfaceplant.HeatExtracted.value) * 1000.) + if self.chillercapex.value == -1: # no value provided by user, use built-in correlation ($2500/ton) + cooling_default_cost_usd_per_ton = 2500 # $2,500/ton of cooling. TODO parameterize + self.chillercapex.value = ( self._indirect_cost_factor * self._contingency_factor * np.max(model.surfaceplant.cooling_produced.value) - * 1000 / 3.517 * 2500 / 1e6 # $2,500/ton of cooling. + * 1000 / 3.517 * cooling_default_cost_usd_per_ton / 1e6 ) # now add chiller cost to surface plant cost @@ -3051,11 +3140,13 @@ def calculate_plant_costs(self, model: Model) -> None: self.Cplant.value = self.ccplantfixed.value else: # this is for the direct-use part all the way up to the heat pump - self.Cplant.value = self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value * 250E-6 * np.max( + self.Cplant.value = self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value * direct_use_heat_default_cost_musd_per_kwth * np.max( model.surfaceplant.HeatExtracted.value) * 1000. + if self.heatpumpcapex.value == -1: # no value provided by user, use built-in correlation ($150/kWth) + heat_pump_default_cost_usd_per_kw = 150 # $150/kW - TODO parameterize self.heatpumpcapex.value = self._indirect_cost_factor * self._contingency_factor * np.max( - model.surfaceplant.HeatProduced.value) * 1000 * 150 / 1e6 # $150/kW - TODO parameterize + model.surfaceplant.HeatProduced.value) * 1000 * heat_pump_default_cost_usd_per_kw / 1e6 # now add heat pump cost to surface plant cost self.Cplant.value += self.heatpumpcapex.value @@ -3065,7 +3156,7 @@ def calculate_plant_costs(self, model: Model) -> None: if self.ccplantfixed.Valid: self.Cplant.value = self.ccplantfixed.value else: - self.Cplant.value = self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value * 250E-6 * np.max( + self.Cplant.value = self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value * direct_use_heat_default_cost_musd_per_kwth * np.max( model.surfaceplant.HeatExtracted.value) * 1000. # add 65$/KW for peaking boiler @@ -3077,7 +3168,10 @@ def calculate_plant_costs(self, model: Model) -> None: self.Cplant.value += self.peakingboilercost.value - else: # all other options have power plant + else: + # all other options have power plant + # TODO migrate relevant constants/calculations below to their respective classes + if model.surfaceplant.plant_type.value == PlantType.SUB_CRITICAL_ORC: MaxProducedTemperature = np.max(model.surfaceplant.TenteringPP.value) if MaxProducedTemperature < 150.: @@ -3220,9 +3314,23 @@ def calculate_plant_costs(self, model: Model) -> None: np.max(model.surfaceplant.ElectricityProduced.value) * 1000. / 1E6) if self.ccplantfixed.Valid: - self.Cplant.value = self.ccplantfixed.value - self.CAPEX_cost_electricity_plant = self.Cplant.value * self.CAPEX_heat_electricity_plant_ratio.value - self.CAPEX_cost_heat_plant = self.Cplant.value * (1.0 - self.CAPEX_heat_electricity_plant_ratio.value) + self.Cplant.value = self.ccplantfixed.value # TODO unit conversion + + # TODO compute self.CAPEX_heat_electricity_plant_ratio.Valid property instead + is_cogen_plant_capex_ratio_valid: bool = self.CAPEX_heat_electricity_plant_ratio.Provided \ + and self.CAPEX_heat_electricity_plant_ratio.value != -1 + + if not is_cogen_plant_capex_ratio_valid: + # TODO enhance message user-friendliness + raise RuntimeError(f'{self.CAPEX_heat_electricity_plant_ratio.Name} is required.') + + self.CAPEX_cost_electrical_plant.value = self.Cplant.quantity( + self.CAPEX_cost_electrical_plant.CurrentUnits).magnitude * \ + self.CAPEX_heat_electricity_plant_ratio.quantity('dimensionless').magnitude + + self.CAPEX_cost_heat_plant.value = self.Cplant.quantity( + self.CAPEX_cost_heat_plant.CurrentUnits).magnitude * \ + (1.0 - self.CAPEX_heat_electricity_plant_ratio.quantity('dimensionless').magnitude) else: if self.Power_plant_cost_per_kWe.Provided: nameplate_capacity_kW = np.max(model.surfaceplant.ElectricityProduced.quantity().to('kW')) @@ -3235,32 +3343,44 @@ def calculate_plant_costs(self, model: Model) -> None: direct_plant_cost_MUSD = self.ccplantadjfactor.value * self.Cplantcorrelation * 1.02 * 1.10 self.Cplant.value = self._indirect_cost_factor * self._contingency_factor * direct_plant_cost_MUSD - self.CAPEX_cost_electricity_plant = self.Cplant.value + self.CAPEX_cost_electrical_plant.value = self.Cplant.quantity().to(self.CAPEX_cost_electrical_plant.CurrentUnits).magnitude - # add direct-use plant cost of co-gen system to Cplant (only of no total Cplant was provided) + # add direct-use plant cost of co-gen system to Cplant (only if no total Cplant was provided) if not self.ccplantfixed.Valid: - if model.surfaceplant.enduse_option.value in [EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT]: # enduse_option = 3: cogen topping cycle - self.CAPEX_cost_heat_plant = ( + if model.surfaceplant.enduse_option.value in [ + # enduse_option = 3*: cogen topping cycle + EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, + EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT + ]: + self.CAPEX_cost_heat_plant.value = quantity( self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value - * 250E-6 + * direct_use_heat_default_cost_musd_per_kwth * np.max(model.surfaceplant.HeatProduced.value / model.surfaceplant.enduse_efficiency_factor.value) - * 1000. - ) - elif model.surfaceplant.enduse_option.value in [EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY]: # enduse_option = 4: cogen bottoming cycle - self.CAPEX_cost_heat_plant = self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value * 250E-6 * np.max( - model.surfaceplant.HeatProduced.value / model.surfaceplant.enduse_efficiency_factor.value) * 1000. - elif model.surfaceplant.enduse_option.value in [EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT]: # cogen parallel cycle - self.CAPEX_cost_heat_plant = self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value * 250E-6 * np.max( - model.surfaceplant.HeatProduced.value / model.surfaceplant.enduse_efficiency_factor.value) * 1000. - - self.Cplant.value = self.Cplant.value + self.CAPEX_cost_heat_plant - if not self.CAPEX_heat_electricity_plant_ratio.Provided: - self.CAPEX_heat_electricity_plant_ratio.value = self.CAPEX_cost_electricity_plant/self.Cplant.value + * 1000., + 'MUSD' + ).to(self.CAPEX_cost_heat_plant.CurrentUnits).magnitude + elif model.surfaceplant.enduse_option.value in [ + # enduse_option = 4*: cogen bottoming cycle + EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, + EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY + ]: + self.CAPEX_cost_heat_plant.value = quantity(self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value * direct_use_heat_default_cost_musd_per_kwth * np.max( + model.surfaceplant.HeatProduced.value / model.surfaceplant.enduse_efficiency_factor.value) * 1000., 'MUSD').to(self.CAPEX_cost_heat_plant.CurrentUnits).magnitude + elif model.surfaceplant.enduse_option.value in [ + # cogen parallel cycle + EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY, + EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT + ]: + self.CAPEX_cost_heat_plant.value = quantity(self._indirect_cost_factor * self._contingency_factor * self.ccplantadjfactor.value * direct_use_heat_default_cost_musd_per_kwth * np.max( + model.surfaceplant.HeatProduced.value / model.surfaceplant.enduse_efficiency_factor.value) * 1000., 'MUSD').to(self.CAPEX_cost_heat_plant.CurrentUnits).magnitude + + self.Cplant.value = self.Cplant.value + quantity(self.CAPEX_cost_heat_plant_musd, 'MUSD').to(self.Cplant.CurrentUnits.value).magnitude + + if not self.CAPEX_heat_electricity_plant_ratio.Provided and self.CAPEX_heat_electricity_plant_ratio.value == -1: + self.CAPEX_heat_electricity_plant_ratio.value = (self.CAPEX_cost_electricity_plant_musd / + self.Cplant.quantity().to('MUSD').magnitude) def calculate_total_capital_costs(self, model: Model) -> None: if not self.totalcapcost.Valid: @@ -3305,6 +3425,7 @@ def calculate_total_capital_costs(self, model: Model) -> None: else: self.dhdistrictcost.value = 0 + # TODO unit conversions self.CCap.value = self.Cexpl.value + self.Cwell.value + self.Cstim.value + self.Cgath.value + self.Cplant.value + self.Cpiping.value + self.dhdistrictcost.value else: self.CCap.value = self.totalcapcost.value @@ -3334,8 +3455,10 @@ def calculate_operating_and_maintenance_costs(self, model: Model) -> None: # calculate average annual pumping costs in case no electricity is provided if model.surfaceplant.plant_type.value in [PlantType.INDUSTRIAL, PlantType.ABSORPTION_CHILLER, PlantType.HEAT_PUMP, PlantType.DISTRICT_HEATING]: - self.averageannualpumpingcosts.value = np.average( - model.surfaceplant.PumpingkWh.value) * model.surfaceplant.electricity_cost_to_buy.value / 1E6 # M$/year + self.averageannualpumpingcosts.value = (np.average( + model.surfaceplant.PumpingkWh.quantity()) * model.surfaceplant.electricity_cost_to_buy.quantity()).to( + self.averageannualpumpingcosts.CurrentUnits.value + ).magnitude if not self.oamtotalfixed.Valid: # labor cost @@ -3524,22 +3647,26 @@ def calculate_cashflow(self, model: Model) -> None: """ Calculate cashflow and cumulative cash flow - Note that these calculations are irrelevant and ignored for SAM economic models, except for - carbon calculations. + Note that for SAM economic models, electricity revenue calculations are irrelevant and ignored. """ total_duration = model.surfaceplant.plant_lifetime.value + model.surfaceplant.construction_years.value + self.ElecRevenue.value = [0.0] * total_duration self.ElecCummRevenue.value = [0.0] * total_duration + self.HeatRevenue.value = [0.0] * total_duration self.HeatCummRevenue.value = [0.0] * total_duration + self.CoolingRevenue.value = [0.0] * total_duration self.CoolingCummRevenue.value = [0.0] * total_duration + self.CarbonRevenue.value = [0.0] * total_duration self.CarbonCummCashFlow.value = [0.0] * total_duration + self.CarbonThatWouldHaveBeenProducedTotal.value = 0.0 + self.TotalRevenue.value = [0.0] * total_duration self.TotalCummRevenue.value = [0.0] * total_duration - self.CarbonThatWouldHaveBeenProducedTotal.value = 0.0 # Based on the style of the project, calculate the revenue & cumulative revenue if model.surfaceplant.enduse_option.value == EndUseOptions.ELECTRICITY: @@ -3625,13 +3752,37 @@ def _calculate_sam_economics(self, model: Model) -> None: self.capex_total.value = (self.sam_economics_calculations.capex.quantity() .to(self.capex_total.CurrentUnits.value).magnitude) - # TODO define this as an output of SurfacePlant rather than calculating it on-demand here and elsewhere - max_net_electricity_generation_kw = quantity( - np.max(model.surfaceplant.NetElectricityProduced.value), - model.surfaceplant.NetElectricityProduced.CurrentUnits - ).to('kW') - capex_total_per_kw_q = self.capex_total.quantity().to('USD') / max_net_electricity_generation_kw - self.capex_total_per_kw.value = capex_total_per_kw_q.magnitude + def _calculate_capex_per_kw_outputs() -> None: + max_net_electricity_generation_kw = model.surfaceplant.NetElectricityProducedMax.quantity().to('kW') + + if model.surfaceplant.enduse_option.value == EndUseOptions.ELECTRICITY: + capex_total_per_kw_q = self.capex_total.quantity().to('USD') / max_net_electricity_generation_kw + self.capex_total_per_kwe.value = capex_total_per_kw_q.to( + self.capex_total_per_kwe.CurrentUnits.value).magnitude + + elif model.surfaceplant.enduse_option.value.is_cogeneration_end_use_option: + capex_allocated_per_kwe_q = ( + self.capex_total.quantity().to('USD') * + self.CAPEX_heat_electricity_plant_ratio.quantity().to('dimensionless').magnitude / + max_net_electricity_generation_kw + ) + self.capex_allocated_per_kwe.value = capex_allocated_per_kwe_q.to( + self.capex_allocated_per_kwe.CurrentUnits.value).magnitude + + + capex_allocated_per_kwth_q = ( + self.capex_total.quantity().to('USD') * + (1. - self.CAPEX_heat_electricity_plant_ratio.quantity().to('dimensionless').magnitude) / + model.surfaceplant.HeatProducedMax.quantity().to('kW') + ) + self.capex_allocated_per_kwth.value = capex_allocated_per_kwth_q.to( + self.capex_allocated_per_kwth.CurrentUnits.value).magnitude + + elif model.surfaceplant.enduse_option.value == EndUseOptions.HEAT: + pass # TODO add corresponding output parameter + + + _calculate_capex_per_kw_outputs() self.CCap.value = (self.sam_economics_calculations.capex.quantity() .to(self.CCap.CurrentUnits.value).magnitude) @@ -3735,6 +3886,19 @@ def _calculate_derived_outputs(self, model: Model) -> None: (model.wellbores.nprod.value + model.wellbores.ninj.value) ) + if all(hasattr(self, it) for it in ['CAPEX_heat_electricity_plant_ratio', + 'chp_percent_cost_allocation_for_electrical_plant']): + self.chp_percent_cost_allocation_for_electrical_plant.value = ( + self.CAPEX_heat_electricity_plant_ratio.quantity() + .to(convertible_unit(self.chp_percent_cost_allocation_for_electrical_plant.CurrentUnits)).magnitude + ) + + if all(hasattr(self, it) for it in ['Cplant', 'Cgath', 'Cpiping']): + self.surface_equipment_costs_total.value = ( + self.Cplant.quantity() + self.Cgath.quantity() + self.Cpiping.quantity()).to( + self.surface_equipment_costs_total.CurrentUnits).magnitude + + @property def has_production_based_royalties(self): return self.royalty_rate.Provided or self.royalty_rate_schedule.Provided diff --git a/src/geophires_x/EconomicsAddOns.py b/src/geophires_x/EconomicsAddOns.py index 17f6fa627..3fb7da11b 100644 --- a/src/geophires_x/EconomicsAddOns.py +++ b/src/geophires_x/EconomicsAddOns.py @@ -101,7 +101,11 @@ def multi_addon_tooltip_text(param_name: str) -> str: UnitType=Units.CURRENCYFREQUENCY, PreferredUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR, CurrentUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR, - ToolTipText=f'Annual profit gained. {multi_addon_tooltip_text("AddOn Profit Gained")}' + ToolTipText=f'The annual gross revenue or cash inflow generated by the add-on. Note: While ' + f'named \'Profit\', this value is treated mathematically as top-line revenue in economic ' + f'calculations. Do not subtract Add-On OPEX from this value, as the model accounts for ' + f'Add-On OPEX separately. ' + f'{multi_addon_tooltip_text("AddOn Profit Gained")}' ) # local variables that need initialization diff --git a/src/geophires_x/EconomicsSam.py b/src/geophires_x/EconomicsSam.py index 6e5b5696f..90fb057cd 100644 --- a/src/geophires_x/EconomicsSam.py +++ b/src/geophires_x/EconomicsSam.py @@ -3,11 +3,10 @@ import json import logging import os -from dataclasses import dataclass, field from functools import lru_cache from math import isnan from pathlib import Path -from typing import Any +from typing import Any, Iterable from decimal import Decimal @@ -29,378 +28,32 @@ from tabulate import tabulate from geophires_x import Model as Model +from geophires_x.EconomicsSamCalculations import ( + SamEconomicsCalculations, + CapacityPaymentRevenueSource, + ROYALTIES_OPEX_CASH_FLOW_LINE_ITEM_KEY, + _after_tax_net_cash_flow_all_years, + _net_cash_flow_all_years, +) from geophires_x.EconomicsSamCashFlow import ( _calculate_sam_economics_cash_flow_operational_years, - _SAM_CASH_FLOW_NAN_STR, ) from geophires_x.EconomicsUtils import ( BuildPricingModel, - wacc_output_parameter, - nominal_discount_rate_parameter, - after_tax_irr_parameter, - moic_parameter, - project_vir_parameter, - project_payback_period_parameter, - total_capex_parameter_output_parameter, - royalty_cost_output_parameter, - overnight_capital_cost_output_parameter, _SAM_EM_MOIC_RETURNS_TAX_QUALIFIER, - investment_tax_credit_output_parameter, ) from geophires_x.EconomicsSamPreRevenue import ( - _AFTER_TAX_NET_CASH_FLOW_ROW_NAME, PreRevenueCostsAndCashflow, calculate_pre_revenue_costs_and_cashflow, adjust_phased_schedule_to_new_length, ) from geophires_x.GeoPHIRESUtils import is_float, is_int, sig_figs, quantity -from geophires_x.OptionList import EconomicModel, EndUseOptions +from geophires_x.OptionList import EconomicModel, EndUseOptions, PlantType from geophires_x.Parameter import Parameter, OutputParameter, floatParameter, listParameter -from geophires_x.Units import convertible_unit, EnergyCostUnit, CurrencyUnit, Units +from geophires_x.Units import convertible_unit _log = logging.getLogger(__name__) -ROYALTIES_OPEX_CASH_FLOW_LINE_ITEM_KEY = 'O&M production-based expense ($)' - - -@dataclass -class SamEconomicsCalculations: - _sam_cash_flow_profile_operational_years: list[list[Any]] - """ - Operational cash flow profile from SAM financial engine - """ - - pre_revenue_costs_and_cash_flow: PreRevenueCostsAndCashflow - - lcoe_nominal: OutputParameter = field( - default_factory=lambda: OutputParameter( - UnitType=Units.ENERGYCOST, - CurrentUnits=EnergyCostUnit.CENTSSPERKWH, - ) - ) - - overnight_capital_cost: OutputParameter = field(default_factory=overnight_capital_cost_output_parameter) - - capex: OutputParameter = field(default_factory=total_capex_parameter_output_parameter) - - _royalties_rate_schedule: list[float] | None = None - royalties_opex: OutputParameter = field(default_factory=royalty_cost_output_parameter) - - project_npv: OutputParameter = field( - default_factory=lambda: OutputParameter( - UnitType=Units.CURRENCY, - CurrentUnits=CurrencyUnit.MDOLLARS, - ) - ) - - after_tax_irr: OutputParameter = field(default_factory=after_tax_irr_parameter) - nominal_discount_rate: OutputParameter = field(default_factory=nominal_discount_rate_parameter) - wacc: OutputParameter = field(default_factory=wacc_output_parameter) - moic: OutputParameter = field(default_factory=moic_parameter) - project_vir: OutputParameter = field(default_factory=project_vir_parameter) - - project_payback_period: OutputParameter = field(default_factory=project_payback_period_parameter) - - investment_tax_credit: OutputParameter = field(default_factory=investment_tax_credit_output_parameter) - - @property - def _pre_revenue_years_count(self) -> int: - return len( - self.pre_revenue_costs_and_cash_flow.pre_revenue_cash_flow_profile_dict[_AFTER_TAX_NET_CASH_FLOW_ROW_NAME] - ) - - @property - def sam_cash_flow_profile(self) -> list[list[Any]]: - ret: list[list[Any]] = self._sam_cash_flow_profile_operational_years.copy() - col_count = len(self._sam_cash_flow_profile_operational_years[0]) - - # TODO support/insert calendar year line item https://github.com/NREL/GEOPHIRES-X/issues/439 - - pre_revenue_years_to_insert = self._pre_revenue_years_count - 1 - - construction_rows: list[list[Any]] = [ - ['CONSTRUCTION'] + [''] * (len(self._sam_cash_flow_profile_operational_years[0]) - 1) - ] - - for row_index in range(len(self._sam_cash_flow_profile_operational_years)): - pre_revenue_row_content = [''] * pre_revenue_years_to_insert - insert_index = 1 - - if row_index == 0: - for pre_revenue_year in range(pre_revenue_years_to_insert): - negative_year_index: int = self._pre_revenue_years_count - 1 - pre_revenue_year - pre_revenue_row_content[pre_revenue_year] = f'Year -{negative_year_index}' - - for _, row_ in enumerate(self.pre_revenue_costs_and_cash_flow.pre_revenue_cash_flow_profile): - pre_revenue_row = row_.copy() - pre_revenue_row.extend([''] * (col_count - len(pre_revenue_row))) - construction_rows.append(pre_revenue_row) - - # TODO zero-vectors for non-construction years e.g. Debt principal payment ($) - - adjusted_row = [ret[row_index][0]] + pre_revenue_row_content + ret[row_index][insert_index:] - ret[row_index] = adjusted_row - - construction_rows.append([''] * len(self._sam_cash_flow_profile_operational_years[0])) - for construction_row in reversed(construction_rows): - ret.insert(1, construction_row) - - def _get_row_index(row_name_: str) -> list[Any]: - return [it[0] for it in ret].index(row_name_) - - def _get_row(row_name__: str) -> list[Any]: - for r in ret: - if r[0] == row_name__: - return r[1:] - - raise ValueError(f'Could not find row with name {row_name__}') - - after_tax_cash_flow: list[float] = ( - self.pre_revenue_costs_and_cash_flow.pre_revenue_cash_flow_profile_dict[_AFTER_TAX_NET_CASH_FLOW_ROW_NAME] - + _get_row('Total after-tax returns ($)')[self._pre_revenue_years_count :] - ) - after_tax_cash_flow = [float(it) for it in after_tax_cash_flow if is_float(it)] - irr_row_name = 'After-tax cumulative IRR (%)' - ret.insert( - _get_row_index(irr_row_name), ['After-tax net cash flow ($)', *[int(it) for it in after_tax_cash_flow]] - ) - - npv_usd = [] - irr_pct = [] - for year in range(len(after_tax_cash_flow)): - npv_usd.append( - round( - npf.npv( - self.nominal_discount_rate.quantity().to('dimensionless').magnitude, - after_tax_cash_flow[: year + 1], - ) - ) - ) - - year_irr = npf.irr(after_tax_cash_flow[: year + 1]) * 100.0 - irr_pct.append(year_irr if not isnan(year_irr) else _SAM_CASH_FLOW_NAN_STR) - - ret[_get_row_index('After-tax cumulative NPV ($)')] = ['After-tax cumulative NPV ($)'] + npv_usd - ret[_get_row_index('After-tax cumulative IRR (%)')] = [irr_row_name] + irr_pct - - if self._royalties_rate_schedule is not None: - ret = self._insert_royalties_rate_schedule(ret) - - ret = self._insert_calculated_levelized_metrics_line_items(ret) - - return ret - - def _insert_royalties_rate_schedule(self, cf_ret: list[list[Any]]) -> list[list[Any]]: - ret = cf_ret.copy() - - def _get_row_index(row_name_: str) -> list[Any]: - return [it[0] for it in ret].index(row_name_) - - ret.insert( - _get_row_index(ROYALTIES_OPEX_CASH_FLOW_LINE_ITEM_KEY), - [ - *['Royalty rate (%)'], - *([''] * (self._pre_revenue_years_count)), - *[ - quantity(it, 'dimensionless').to(convertible_unit('percent')).magnitude - for it in self._royalties_rate_schedule - ], - ], - ) - - return ret - - # noinspection DuplicatedCode - def _insert_calculated_levelized_metrics_line_items(self, cf_ret: list[list[Any]]) -> list[list[Any]]: - ret = cf_ret.copy() - - __row_names: list[str] = [it[0] for it in ret] - - def _get_row_index(row_name_: str) -> int: - return __row_names.index(row_name_) - - def _get_row_indexes(row_name_: str, after_row_name: str | None = None) -> list[int]: - after_criteria_met: bool = True if after_row_name is None else False - indexes = [] - for idx, _row_name_ in enumerate(__row_names): - if _row_name_ == after_row_name: - after_criteria_met = True - - if _row_name_ == row_name_ and after_criteria_met: - indexes.append(idx) - - return indexes - - def _get_row_index_after(row_name_: str, after_row_name: str) -> int: - return _get_row_indexes(row_name_, after_row_name=after_row_name)[0] - - after_tax_lcoe_and_ppa_price_header_row_title = 'AFTER-TAX LCOE AND PPA PRICE' - - # Backfill annual costs - annual_costs_usd_row_name = 'Annual costs ($)' - annual_costs = cf_ret[_get_row_index(annual_costs_usd_row_name)].copy() - after_tax_net_cash_flow_usd = cf_ret[_get_row_index('After-tax net cash flow ($)')] - - annual_costs_backfilled = [ - *after_tax_net_cash_flow_usd[1 : (self._pre_revenue_years_count + 1)], - *annual_costs[(self._pre_revenue_years_count + 1) :], - ] - - ret[_get_row_index(annual_costs_usd_row_name)][1:] = annual_costs_backfilled - - ppa_revenue_row_name = 'PPA revenue ($)' - ppa_revenue_row_index = _get_row_index_after( - ppa_revenue_row_name, after_tax_lcoe_and_ppa_price_header_row_title - ) - year_0_ppa_revenue: float = ret[ppa_revenue_row_index][self._pre_revenue_years_count] - if year_0_ppa_revenue != 0.0: - # Shouldn't happen - _log.warning(f'PPA revenue in Year 0 ({year_0_ppa_revenue}) is not zero, this is unexpected.') - - ret[ppa_revenue_row_index][1 : self._pre_revenue_years_count] = [year_0_ppa_revenue] * ( - self._pre_revenue_years_count - 1 - ) - - electricity_to_grid_kwh_row_name = 'Electricity to grid (kWh)' - electricity_to_grid = cf_ret[_get_row_index(electricity_to_grid_kwh_row_name)].copy() - electricity_to_grid_backfilled = [ - 0 if it == '' else (int(it) if is_int(it) else it) for it in electricity_to_grid[1:] - ] - - electricity_to_grid_kwh_row_index = _get_row_index_after( - electricity_to_grid_kwh_row_name, after_tax_lcoe_and_ppa_price_header_row_title - ) - ret[electricity_to_grid_kwh_row_index][1:] = electricity_to_grid_backfilled - - pv_of_annual_costs_backfilled_row_name = 'Present value of annual costs ($)' - - # Backfill PV of annual costs - annual_costs_backfilled_pv_processed = annual_costs_backfilled.copy() - pv_of_annual_costs_backfilled = [] - for year in range(self._pre_revenue_years_count): - pv_at_year = abs( - round( - npf.npv( - self.nominal_discount_rate.quantity().to('dimensionless').magnitude, - annual_costs_backfilled_pv_processed, - ) - ) - ) - - pv_of_annual_costs_backfilled.append(pv_at_year) - - cost_at_year = annual_costs_backfilled_pv_processed.pop(0) - annual_costs_backfilled_pv_processed[0] = annual_costs_backfilled_pv_processed[0] + cost_at_year - - pv_of_annual_costs_backfilled_row = [ - *[pv_of_annual_costs_backfilled_row_name], - *pv_of_annual_costs_backfilled, - ] - - pv_of_annual_costs_row_name = 'Present value of annual costs ($)' - pv_of_annual_costs_row_index = _get_row_index(pv_of_annual_costs_row_name) - ret[pv_of_annual_costs_row_index][1:] = [ - pv_of_annual_costs_backfilled[0], - *([''] * (self._pre_revenue_years_count - 1)), - ] - - # Backfill PV of electricity to grid - electricity_to_grid_backfilled_pv_processed = electricity_to_grid_backfilled.copy() - pv_of_electricity_to_grid_backfilled_kwh = [] - for year in range(self._pre_revenue_years_count): - pv_at_year = abs( - round( - npf.npv( - self.nominal_discount_rate.quantity().to('dimensionless').magnitude, - electricity_to_grid_backfilled_pv_processed, - ) - ) - ) - - pv_of_electricity_to_grid_backfilled_kwh.append(pv_at_year) - - electricity_to_grid_at_year = electricity_to_grid_backfilled_pv_processed.pop(0) - electricity_to_grid_backfilled_pv_processed[0] = ( - electricity_to_grid_backfilled_pv_processed[0] + electricity_to_grid_at_year - ) - - pv_of_annual_energy_row_name = 'Present value of annual energy nominal (kWh)' - for pv_of_annual_energy_row_index in _get_row_indexes(pv_of_annual_energy_row_name): - ret[pv_of_annual_energy_row_index][1:] = [ - pv_of_electricity_to_grid_backfilled_kwh[0], - *([''] * (self._pre_revenue_years_count - 1)), - ] - - def backfill_lcoe_nominal() -> None: - pv_of_electricity_to_grid_backfilled_row_kwh = pv_of_electricity_to_grid_backfilled_kwh - pv_of_annual_costs_backfilled_row_values_usd = pv_of_annual_costs_backfilled_row[ - 1 if isinstance(pv_of_annual_costs_backfilled_row[0], str) else 0 : - ] - - lcoe_nominal_backfilled = [] - for _year in range(len(pv_of_annual_costs_backfilled_row_values_usd)): - lcoe_nominal_backfilled.append( - pv_of_annual_costs_backfilled_row_values_usd[_year] - * 100 - / pv_of_electricity_to_grid_backfilled_row_kwh[_year] - ) - - lcoe_nominal_row_name = 'LCOE Levelized cost of energy nominal (cents/kWh)' - lcoe_nominal_row_index = _get_row_index(lcoe_nominal_row_name) - ret[lcoe_nominal_row_index][1:] = [ - round(lcoe_nominal_backfilled[0], 2), - *([None] * (self._pre_revenue_years_count - 1)), - ] - - backfill_lcoe_nominal() - - def backfill_lppa_metrics() -> None: - pv_of_ppa_revenue_row_index = _get_row_index_after( - 'Present value of PPA revenue ($)', after_tax_lcoe_and_ppa_price_header_row_title - ) - first_year_pv_of_ppa_revenue_usd = round( - npf.npv( - self.nominal_discount_rate.quantity().to('dimensionless').magnitude, - ret[ppa_revenue_row_index][1:], - ) - ) - ret[pv_of_ppa_revenue_row_index][1:] = [ - first_year_pv_of_ppa_revenue_usd, - *([None] * (self._pre_revenue_years_count - 1)), - ] - - ppa_price_row_index = _get_row_index('PPA price (cents/kWh)') - year_0_ppa_price: float = ret[ppa_price_row_index][self._pre_revenue_years_count] - if year_0_ppa_price != 0.0: - # Shouldn't happen - _log.warning(f'PPA price in Year 0 ({year_0_ppa_price}) is not zero, this is unexpected.') - - # TODO (maybe) - # ppa_revenue_all_years = [ - # *([year_0_ppa_price] * (self._pre_revenue_years_count - 1)), - # *ret[ppa_price_row_index][self._pre_revenue_years_count :], - # ] - # ret[_get_row_index('PPA price (cents/kWh)')][1:] = ppa_revenue_all_years - - # Note: expected to be same in all pre-revenue years since both price and revenue are zero until COD - first_year_lppa_cents_per_kwh = ( - first_year_pv_of_ppa_revenue_usd * 100.0 / ret[_get_row_index(pv_of_annual_energy_row_name)][1] - ) - - lppa_row_name = 'LPPA Levelized PPA price nominal (cents/kWh)' - ret[_get_row_index(lppa_row_name)][1:] = [ - round(first_year_lppa_cents_per_kwh, 2), - *([None] * self._pre_revenue_years_count), - ] - - backfill_lppa_metrics() - - return ret - - @property - def sam_after_tax_net_cash_flow_all_years(self) -> list[float]: - return _after_tax_net_cash_flow_all_years(self.sam_cash_flow_profile, self._pre_revenue_years_count) - def validate_read_parameters(model: Model) -> None: def _inv_msg(param_name: str, invalid_value: Any, supported_description: str) -> str: @@ -411,12 +64,36 @@ def _inv_msg(param_name: str, invalid_value: Any, supported_description: str) -> f'{supported_description}.' ) - if model.surfaceplant.enduse_option.value != EndUseOptions.ELECTRICITY: + if ( + model.surfaceplant.enduse_option.value + not in ( + EndUseOptions.ELECTRICITY, + EndUseOptions.HEAT, + ) + and not model.surfaceplant.enduse_option.value.is_cogeneration_end_use_option + ): raise ValueError( _inv_msg( model.surfaceplant.enduse_option.Name, model.surfaceplant.enduse_option.value.value, - f'{EndUseOptions.ELECTRICITY.name} End-Use Option', + f'{EndUseOptions.ELECTRICITY.value}, {EndUseOptions.HEAT.value}, ' f'and Cogeneration End-Use Options', + ) + ) + + supported_plant_types = [ + PlantType.SUB_CRITICAL_ORC, + PlantType.SUPER_CRITICAL_ORC, + PlantType.SINGLE_FLASH, + PlantType.DOUBLE_FLASH, + PlantType.ABSORPTION_CHILLER, + PlantType.INDUSTRIAL, + ] + if model.surfaceplant.plant_type.value not in supported_plant_types: + raise ValueError( + _inv_msg( + model.surfaceplant.plant_type.Name, + model.surfaceplant.plant_type.value.value, + ', '.join(map(lambda x: x.value, supported_plant_types)), ) ) @@ -433,6 +110,7 @@ def _inv_msg(param_name: str, invalid_value: Any, supported_description: str) -> f'{eir.Name} provided value ({eir.value}) will be ignored. (SAM Economics does not support {eir.Name}.)' ) + # noinspection PyUnresolvedReferences econ: 'Economics' = model.economics econ.construction_capex_schedule.value = _validate_construction_capex_schedule( @@ -548,6 +226,9 @@ def sf(_v: float, num_sig_figs: int = 5) -> float: sam_economics: SamEconomicsCalculations = SamEconomicsCalculations( _sam_cash_flow_profile_operational_years=cash_flow_operational_years, pre_revenue_costs_and_cash_flow=calculate_pre_revenue_costs_and_cashflow(model), + electricity_plant_frac_of_capex=model.economics.CAPEX_heat_electricity_plant_ratio.quantity() + .to('dimensionless') + .magnitude, ) sam_economics.overnight_capital_cost.value = ( @@ -607,52 +288,34 @@ def sf(_v: float, num_sig_figs: int = 5) -> float: .magnitude ) + if _has_capacity_payment_revenue_sources(model): + sam_economics.capacity_payment_revenue_sources = _get_capacity_payment_revenue_sources(model) + # Note that this calculation is order-dependent on sam_economics.nominal_discount_rate sam_economics.lcoe_nominal.value = sf( _get_lcoe_nominal_cents_per_kwh(single_owner, sam_economics.sam_cash_flow_profile, model) ) - return sam_economics - - -def _after_tax_net_cash_flow_all_years(cash_flow: list[list[Any]], pre_revenue_years_count: int) -> list[float]: - return _net_cash_flow_all_years(cash_flow, pre_revenue_years_count, tax_qualifier='after-tax') - - -def _net_cash_flow_all_years( - cash_flow: list[list[Any]], pre_revenue_years_count: int, tax_qualifier='after-tax' -) -> list[float]: - if tax_qualifier not in ['after-tax', 'pre-tax']: - raise ValueError(f'Invalid tax qualifier: {tax_qualifier}') - - def _get_row(row_name__: str) -> list[Any]: - for r in cash_flow: - if r[0] == row_name__: - return r[1:] - - raise ValueError(f'Could not find row with name {row_name__}') - - def _construction_returns_row(_construction_tax_qualifier: str) -> list[Any]: - returns_row_name = ( - f'Total {_construction_tax_qualifier} returns [construction] ($)' - if tax_qualifier == 'pre-tax' - else f'After-tax net cash flow [construction] ($)' + # Note that LCOH & LCOC calculations are order-dependent on sam_economics.capacity_payment_revenue_sources + sam_economics.lcoh_nominal.value = sf( + _get_levelized_cost_non_electricity_type_nominal_usd_per_mmbtu( + single_owner, + sam_economics.sam_cash_flow_profile, + model, + levelized_cost_nominal_row_name='LCOH Levelized cost of heating nominal ($/MMBTU)', ) - return _get_row(returns_row_name) + ) - try: - construction_returns_row = _construction_returns_row(tax_qualifier) - except ValueError as ve: - if tax_qualifier == 'pre-tax': - # TODO log warning - construction_returns_row = _construction_returns_row('after-tax') - else: - raise ve + sam_economics.lcoc_nominal.value = sf( + _get_levelized_cost_non_electricity_type_nominal_usd_per_mmbtu( + single_owner, + sam_economics.sam_cash_flow_profile, + model, + levelized_cost_nominal_row_name='LCOC Levelized cost of cooling nominal ($/MMBTU)', + ) + ) - return [ - *[float(it) for it in construction_returns_row if is_float(it)], - *[float(it) for it in _get_row(f'Total {tax_qualifier} returns ($)')[pre_revenue_years_count:] if is_float(it)], - ] + return sam_economics def _get_project_npv_musd(single_owner: Singleowner, cash_flow: list[list[Any]], model: Model) -> float: @@ -674,7 +337,22 @@ def _get_lcoe_nominal_cents_per_kwh( lcoe_row_name = 'LCOE Levelized cost of energy nominal (cents/kWh)' ret = _cash_flow_profile_row(sam_cash_flow_profile, lcoe_row_name)[0] - # model.logger.info(f'Single Owner LCOE nominal (cents/kWh): {single_owner.Outputs.lcoe_nom}'); + return ret + + +# noinspection PyUnusedLocal +def _get_levelized_cost_non_electricity_type_nominal_usd_per_mmbtu( + single_owner: Singleowner, + sam_cash_flow_profile: list[list[Any]], + model: Model, + levelized_cost_nominal_row_name: str, +) -> float | None: + try: + levelized_cost_row = _cash_flow_profile_row(sam_cash_flow_profile, levelized_cost_nominal_row_name) + except StopIteration: + return None + + ret = levelized_cost_row[0] return ret @@ -908,12 +586,20 @@ def _get_utility_rate_parameters(m: Model) -> dict[str, Any]: ret['inflation_rate'] = econ.RINFL.quantity().to(convertible_unit('%')).magnitude - max_total_kWh_produced = np.max(m.surfaceplant.TotalkWhProduced.value) - degradation_total = [ - (max_total_kWh_produced - it) / max_total_kWh_produced * 100 for it in m.surfaceplant.NetkWhProduced.value - ] + max_total_kWh_produced = np.max(m.surfaceplant.TotalkWhProduced.quantity().to(convertible_unit('kWh')).magnitude) - ret['degradation'] = degradation_total + net_kwh_produced_series: Iterable | float | int = ( + m.surfaceplant.NetkWhProduced.quantity().to(convertible_unit('kWh')).magnitude + ) + + if isinstance(net_kwh_produced_series, Iterable): + degradation_total = [ + (max_total_kWh_produced - it) / max_total_kWh_produced * 100 for it in net_kwh_produced_series + ] + ret['degradation'] = degradation_total + else: + # Occurs for non-electricity end-use options + ret['degradation'] = [100.0] * m.surfaceplant.plant_lifetime.value return ret @@ -968,6 +654,19 @@ def _get_single_owner_parameters(model: Model) -> dict[str, Any]: for year_index in range(model.surfaceplant.plant_lifetime.value): opex_by_year_usd.append(opex_base_usd + royalty_supplemental_payments_by_year_usd[year_index]) + if model.surfaceplant.enduse_option.value == EndUseOptions.HEAT: + # For pure direct-use, pumping is a grid purchase. + # Create an annual array adding the specific year's pumping cost to the base O&M. + # TODO evaluate eventually migrating to SAM's native electricity purchase mechanisms instead + # (would require refactoring GEOPHIRES generation internals to support negative production...) + + elec_rate_usd_per_kwh = model.surfaceplant.electricity_cost_to_buy.quantity().to('USD/kWh').magnitude + annual_pumping_kwh = model.surfaceplant.PumpingkWh.quantity().to('kWh/year').magnitude + opex_by_year_usd = [ + opex_by_year_usd[year_index] + annual_pumping_kwh[year_index] * elec_rate_usd_per_kwh + for year_index in range(model.surfaceplant.plant_lifetime.value) + ] + ret['om_fixed'] = opex_by_year_usd # GEOPHIRES assumes O&M fixed costs are not affected by inflation @@ -1016,29 +715,105 @@ def _get_single_owner_parameters(model: Model) -> dict[str, Any]: return ret -def _get_capacity_payment_parameters(model: Model) -> dict[str, Any]: - ret = {} +def _has_capacity_payment_revenue_sources(model: Model) -> bool: + return len(_get_capacity_payment_revenue_sources(model)) > 0 + + +def _get_capacity_payment_revenue_sources(model: Model) -> list[CapacityPaymentRevenueSource]: + ret: list[CapacityPaymentRevenueSource] = [] econ = model.economics - if econ.DoAddOnCalculations.value or econ.DoCarbonCalculations.value: - ret['cp_capacity_payment_type'] = 1 - ret['cp_capacity_payment_amount'] = [0.0] * model.surfaceplant.plant_lifetime.value + def _has_revenue_type(econ_revenue_output: OutputParameter) -> bool: + return isinstance(econ_revenue_output.value, Iterable) and any(it > 0 for it in econ_revenue_output.value) + + has_heat_revenue = _has_revenue_type(econ.HeatRevenue) + has_cooling_revenue = _has_revenue_type(econ.CoolingRevenue) - if econ.DoAddOnCalculations.value: - add_on_profit_per_year_usd = np.sum( - model.addeconomics.AddOnProfitGainedPerYear.quantity().to('USD/yr').magnitude + if econ.DoAddOnCalculations.value: + add_on_profit_per_year_usd = np.sum( + model.addeconomics.AddOnProfitGainedPerYear.quantity().to('USD/yr').magnitude + ) + add_on_profit_usd_series = [round(add_on_profit_per_year_usd)] * model.surfaceplant.plant_lifetime.value + add_on_source = CapacityPaymentRevenueSource(name='Add-On', revenue_usd=add_on_profit_usd_series) + ret.append(add_on_source) + + def _price_vector(price_value: list[float]) -> list[float | str]: + return [ + *(['' if it == 0.0 else it for it in price_value[: _pre_revenue_years_count(model) - 1]]), + *price_value[_pre_revenue_years_count(model) - 1 :], + ] + + if econ.DoCarbonCalculations.value: + carbon_revenue_usd_series = ( + econ.CarbonRevenue.quantity().to('USD/yr').magnitude[_pre_revenue_years_count(model) :] + ) + carbon_revenue_source = CapacityPaymentRevenueSource( + name='Carbon credits', # TODO/WIP naming re: https://github.com/NatLabRockies/GEOPHIRES-X/issues/476 + revenue_usd=[round(it) for it in carbon_revenue_usd_series], + price_label=f'Carbon price ({econ.CarbonPrice.CurrentUnits.value})', + price=_price_vector(econ.CarbonPrice.value), + amount_provided_label=f'Saved Carbon Production ({econ.CarbonThatWouldHaveBeenProducedAnnually.CurrentUnits.value})', + amount_provided=econ.CarbonThatWouldHaveBeenProducedAnnually.value[_pre_revenue_years_count(model) :], + ) + ret.append(carbon_revenue_source) + + def _get_revenue_usd_series(econ_revenue_output: OutputParameter) -> Iterable[float]: + return [ + round(it) + for it in econ_revenue_output.quantity().to('USD/year').magnitude[_pre_revenue_years_count(model) :] + ] + + if has_heat_revenue: + ret.append( + CapacityPaymentRevenueSource( + name='Heat', + revenue_usd=_get_revenue_usd_series(econ.HeatRevenue), + price_label=f'Heat price ({econ.HeatPrice.CurrentUnits.value})', + price=_price_vector(econ.HeatPrice.value), + amount_provided_label=f'Heat provided ({model.surfaceplant.HeatkWhProduced.CurrentUnits.value})', + amount_provided=model.surfaceplant.HeatkWhProduced.value, ) - add_on_profit_usd_series = [add_on_profit_per_year_usd] * model.surfaceplant.plant_lifetime.value - for i, add_on_profit_usd in enumerate(add_on_profit_usd_series): - ret['cp_capacity_payment_amount'][i] += add_on_profit_usd + ) - if econ.DoCarbonCalculations.value: - carbon_revenue_usd_series = ( - econ.CarbonRevenue.quantity().to('USD/yr').magnitude[_pre_revenue_years_count(model) :] + if has_cooling_revenue: + # cooling_kWh_Produced's default preferred units are kWh/yr. + # The /yr is redundant when displaying on an annualized basis. + # TODO there are various degrees of increased sophistication with which this adjustment could be performed, + # e.g. adding a derived property to CurrencyFrequencyUnit instead of manually splitting the string, + # re-interpolating the revenue vector if it's not annualized, etc. + cooling_provided_unit = model.surfaceplant.cooling_kWh_Produced.CurrentUnits.value + if (cooling_provided_unit if cooling_provided_unit is not None else '').endswith('/yr'): + cooling_provided_unit = cooling_provided_unit.split('/yr')[0] + + ret.append( + CapacityPaymentRevenueSource( + name='Cooling', + revenue_usd=_get_revenue_usd_series(econ.CoolingRevenue), + price_label=f'Cooling price ({econ.CoolingPrice.CurrentUnits.value})', + price=_price_vector(econ.CoolingPrice.value), + amount_provided_label=f'Cooling provided ({cooling_provided_unit})', + amount_provided=model.surfaceplant.cooling_kWh_Produced.value, ) - for i, carbon_revenue_usd in enumerate(carbon_revenue_usd_series): - ret['cp_capacity_payment_amount'][i] += carbon_revenue_usd + ) + + return ret + + +def _get_capacity_payment_parameters(model: Model) -> dict[str, Any]: + ret: dict[str, Any] = {} + + capacity_payment_revenue_sources: list[CapacityPaymentRevenueSource] = _get_capacity_payment_revenue_sources(model) + + if len(capacity_payment_revenue_sources) == 0: + return ret + + ret['cp_capacity_payment_type'] = 1 + ret['cp_capacity_payment_amount'] = [0.0] * model.surfaceplant.plant_lifetime.value + + for capacity_payment_revenue_source in capacity_payment_revenue_sources: + for i, revenue_usd in enumerate(capacity_payment_revenue_source.revenue_usd): + ret['cp_capacity_payment_amount'][i] += revenue_usd return ret @@ -1114,4 +889,22 @@ def _get_royalty_rate_schedule(model: Model) -> list[float]: def _get_max_total_generation_kW(model: Model) -> float: - return np.max(model.surfaceplant.ElectricityProduced.quantity().to(convertible_unit('kW')).magnitude) + max_total_kw = np.max(model.surfaceplant.ElectricityProduced.quantity().to(convertible_unit('kW')).magnitude) + + if not model.surfaceplant.enduse_option.value.has_electricity_component: + # SAM requires a non-zero nameplate capacity, so we must provide a value even if there is no electricity + # component. The stub value is both accepted/processed by SAM and results in + # zero electricity production/revenue in the cash flow due to rounding. + # This logic should be revisited if SAM adds support for combined energy-heat models per + # https://github.com/softwareengineerprogrammer/GEOPHIRES/pull/142#pullrequestreview-3999949844 + non_electricity_end_use_stub_value = 0.0001 + + max_total_kw = max(non_electricity_end_use_stub_value, max_total_kw) + if max_total_kw != non_electricity_end_use_stub_value: + # Shouldn't happen + model.logger.warning( + f'Unexpected non-zero maximum total electricity generation for heat end-use option: {max_total_kw} kW. ' + f'This may be a result of an internal bug in GEOPHIRES or an invalid parameter configuration.' + ) + + return max_total_kw diff --git a/src/geophires_x/EconomicsSamCalculations.py b/src/geophires_x/EconomicsSamCalculations.py new file mode 100644 index 000000000..10d714976 --- /dev/null +++ b/src/geophires_x/EconomicsSamCalculations.py @@ -0,0 +1,693 @@ +from __future__ import annotations + +import logging +from dataclasses import dataclass, field +from math import isnan +from typing import Any + +import numpy_financial as npf + +from geophires_x.EconomicsSamCashFlow import _SAM_CASH_FLOW_NAN_STR +from geophires_x.EconomicsSamPreRevenue import PreRevenueCostsAndCashflow, _AFTER_TAX_NET_CASH_FLOW_ROW_NAME +from geophires_x.EconomicsUtils import ( + overnight_capital_cost_output_parameter, + total_capex_parameter_output_parameter, + royalty_cost_output_parameter, + after_tax_irr_parameter, + nominal_discount_rate_parameter, + wacc_output_parameter, + moic_parameter, + project_vir_parameter, + project_payback_period_parameter, + investment_tax_credit_output_parameter, + lcoh_output_parameter, + lcoc_output_parameter, +) +from geophires_x.GeoPHIRESUtils import is_float, quantity, is_int +from geophires_x.Parameter import OutputParameter +from geophires_x.Units import Units, EnergyCostUnit, CurrencyUnit, convertible_unit + +_log = logging.getLogger(__name__) + + +ROYALTIES_OPEX_CASH_FLOW_LINE_ITEM_KEY = 'O&M production-based expense ($)' + + +@dataclass +class SamEconomicsCalculations: + + _sam_cash_flow_profile_operational_years: list[list[Any]] + """ + Operational cash flow profile from SAM financial engine + """ + + pre_revenue_costs_and_cash_flow: PreRevenueCostsAndCashflow + + electricity_plant_frac_of_capex: float = 1.0 + """ + Derived from model.economics.CAPEX_heat_electricity_plant_ratio + """ + + lcoe_nominal: OutputParameter = field( + default_factory=lambda: OutputParameter( + UnitType=Units.ENERGYCOST, + CurrentUnits=EnergyCostUnit.CENTSSPERKWH, + ) + ) + + lcoh_nominal: OutputParameter = field(default_factory=lcoh_output_parameter) + lcoc_nominal: OutputParameter = field(default_factory=lcoc_output_parameter) + + overnight_capital_cost: OutputParameter = field(default_factory=overnight_capital_cost_output_parameter) + + capex: OutputParameter = field(default_factory=total_capex_parameter_output_parameter) + + _royalties_rate_schedule: list[float] | None = None + royalties_opex: OutputParameter = field(default_factory=royalty_cost_output_parameter) + + project_npv: OutputParameter = field( + default_factory=lambda: OutputParameter( + UnitType=Units.CURRENCY, + CurrentUnits=CurrencyUnit.MDOLLARS, + ) + ) + + after_tax_irr: OutputParameter = field(default_factory=after_tax_irr_parameter) + nominal_discount_rate: OutputParameter = field(default_factory=nominal_discount_rate_parameter) + wacc: OutputParameter = field(default_factory=wacc_output_parameter) + moic: OutputParameter = field(default_factory=moic_parameter) + project_vir: OutputParameter = field(default_factory=project_vir_parameter) + + project_payback_period: OutputParameter = field(default_factory=project_payback_period_parameter) + + investment_tax_credit: OutputParameter = field(default_factory=investment_tax_credit_output_parameter) + + capacity_payment_revenue_sources: list[CapacityPaymentRevenueSource] = field(default_factory=list) + + @property + def _pre_revenue_years_count(self) -> int: + return len( + self.pre_revenue_costs_and_cash_flow.pre_revenue_cash_flow_profile_dict[_AFTER_TAX_NET_CASH_FLOW_ROW_NAME] + ) + + @property + def sam_cash_flow_profile(self) -> list[list[Any]]: + ret: list[list[Any]] = self._sam_cash_flow_profile_operational_years.copy() + col_count = len(self._sam_cash_flow_profile_operational_years[0]) + + # TODO support/insert calendar year line item https://github.com/NREL/GEOPHIRES-X/issues/439 + + pre_revenue_years_to_insert = self._pre_revenue_years_count - 1 + + construction_rows: list[list[Any]] = [ + ['CONSTRUCTION'] + [''] * (len(self._sam_cash_flow_profile_operational_years[0]) - 1) + ] + + for row_index in range(len(self._sam_cash_flow_profile_operational_years)): + pre_revenue_row_content = [''] * pre_revenue_years_to_insert + insert_index = 1 + + if row_index == 0: + for pre_revenue_year in range(pre_revenue_years_to_insert): + negative_year_index: int = self._pre_revenue_years_count - 1 - pre_revenue_year + pre_revenue_row_content[pre_revenue_year] = f'Year -{negative_year_index}' + + for _, row_ in enumerate(self.pre_revenue_costs_and_cash_flow.pre_revenue_cash_flow_profile): + pre_revenue_row = row_.copy() + pre_revenue_row.extend([''] * (col_count - len(pre_revenue_row))) + construction_rows.append(pre_revenue_row) + + # TODO zero-vectors for non-construction years e.g. Debt principal payment ($) + + adjusted_row = [ret[row_index][0]] + pre_revenue_row_content + ret[row_index][insert_index:] + ret[row_index] = adjusted_row + + construction_rows.append([''] * len(self._sam_cash_flow_profile_operational_years[0])) + for construction_row in reversed(construction_rows): + ret.insert(1, construction_row) + + def _get_row_index(row_name_: str) -> int: + return [it[0] for it in ret].index(row_name_) + + def _get_row(row_name__: str) -> list[Any]: + for r in ret: + if r[0] == row_name__: + return r[1:] + + raise ValueError(f'Could not find row with name {row_name__}') + + after_tax_cash_flow: list[float] = ( + self.pre_revenue_costs_and_cash_flow.pre_revenue_cash_flow_profile_dict[_AFTER_TAX_NET_CASH_FLOW_ROW_NAME] + + _get_row('Total after-tax returns ($)')[self._pre_revenue_years_count :] + ) + after_tax_cash_flow = [float(it) for it in after_tax_cash_flow if is_float(it)] + irr_row_name = 'After-tax cumulative IRR (%)' + ret.insert( + _get_row_index(irr_row_name), ['After-tax net cash flow ($)', *[int(it) for it in after_tax_cash_flow]] + ) + + npv_usd = [] + irr_pct = [] + for year in range(len(after_tax_cash_flow)): + npv_usd.append( + round( + npf.npv( + self.nominal_discount_rate.quantity().to('dimensionless').magnitude, + after_tax_cash_flow[: year + 1], + ) + ) + ) + + year_irr = npf.irr(after_tax_cash_flow[: year + 1]) * 100.0 + irr_pct.append(year_irr if not isnan(year_irr) else _SAM_CASH_FLOW_NAN_STR) + + ret[_get_row_index('After-tax cumulative NPV ($)')] = ['After-tax cumulative NPV ($)'] + npv_usd + ret[_get_row_index('After-tax cumulative IRR (%)')] = [irr_row_name] + irr_pct + + if self._royalties_rate_schedule is not None: + ret = self._insert_royalties_rate_schedule(ret) + + ret = self._insert_capacity_payment_line_items(ret) + + ret = self._insert_calculated_levelized_metrics_line_items(ret) + + if self._may_consume_grid_electricity: + ret = self._adjust_electricity_line_items_for_possible_grid_electricity_consumption(ret) + + return ret + + def _insert_royalties_rate_schedule(self, cf_ret: list[list[Any]]) -> list[list[Any]]: + ret = cf_ret.copy() + + def _get_row_index(row_name_: str) -> int: + return [it[0] for it in ret].index(row_name_) + + ret.insert( + _get_row_index(ROYALTIES_OPEX_CASH_FLOW_LINE_ITEM_KEY), + [ + *['Royalty rate (%)'], + *([''] * (self._pre_revenue_years_count)), + *[ + quantity(it, 'dimensionless').to(convertible_unit('percent')).magnitude + for it in self._royalties_rate_schedule + ], + ], + ) + + return ret + + # noinspection PyMethodMayBeStatic + def _insert_capacity_payment_line_items(self, cf_ret: list[list[Any]]) -> list[list[Any]]: + if len(self.capacity_payment_revenue_sources) == 0: + return cf_ret + + ret: list[list[Any]] = cf_ret.copy() + + def _get_row_index(row_name_: str) -> int: + return [it[0] for it in ret].index(row_name_) + + def _insert_row_before(before_row_name: str, row_name: str, row_content: list[Any]) -> None: + ret.insert( + _get_row_index(before_row_name), + [row_name, *row_content], + ) + + def _insert_blank_line_before(before_row_name: str) -> None: + _insert_row_before(before_row_name, '', ['' for _it in ret[_get_row_index(before_row_name)]][1:]) + + REVENUE_CATEGORY_ROW_NAME = 'REVENUE' + CAPACITY_PAYMENT_REVENUE_ROW_NAME = 'Capacity payment revenue ($)' + + _insert_blank_line_before('Salvage value ($)') + _insert_blank_line_before(CAPACITY_PAYMENT_REVENUE_ROW_NAME) + + def _for_operational_years(_row: list[Any]) -> list[Any]: + return [*([''] * (self._pre_revenue_years_count - 1)), 0, *_row] + + for i, capacity_payment_revenue_source in enumerate(self.capacity_payment_revenue_sources): + if capacity_payment_revenue_source.amount_provided_label is not None: + _insert_row_before( + REVENUE_CATEGORY_ROW_NAME, + capacity_payment_revenue_source.amount_provided_label, + _for_operational_years(capacity_payment_revenue_source.amount_provided), + ) + _insert_blank_line_before(REVENUE_CATEGORY_ROW_NAME) + + revenue_row_name = f'{capacity_payment_revenue_source.name} revenue ($)' + _insert_row_before( + CAPACITY_PAYMENT_REVENUE_ROW_NAME, + revenue_row_name, + _for_operational_years(capacity_payment_revenue_source.revenue_usd), + ) + + if capacity_payment_revenue_source.price_label is not None: + _insert_row_before( + revenue_row_name, + capacity_payment_revenue_source.price_label.replace('USD', '$'), + capacity_payment_revenue_source.price, + ) + + if len(self.capacity_payment_revenue_sources) > 1 and i < len(self.capacity_payment_revenue_sources) - 1: + _insert_row_before( + CAPACITY_PAYMENT_REVENUE_ROW_NAME, + 'plus:', + ['' for _it in ret[_get_row_index(revenue_row_name)]][1:], + ) + + if len(self.capacity_payment_revenue_sources) > 0: + _insert_row_before( + CAPACITY_PAYMENT_REVENUE_ROW_NAME, 'equals:', ['' for _it in ret[_get_row_index(revenue_row_name)]][1:] + ) + + return ret + + def _insert_calculated_levelized_metrics_line_items(self, cf_ret: list[list[Any]]) -> list[list[Any]]: + ret = cf_ret.copy() + + def _get_row_index(row_name_: str, raise_exception_if_not_present: bool = True) -> int: + try: + return [it[0] for it in ret].index(row_name_) + except ValueError as ve: + if raise_exception_if_not_present: + raise ve + else: + return -1 + + def _get_row_indexes(row_name_: str, after_row_name: str | None = None) -> list[int]: + after_criteria_met: bool = True if after_row_name is None else False + indexes = [] + for idx, _row_name_ in enumerate([it[0] for it in ret]): + if _row_name_ == after_row_name: + after_criteria_met = True + + if _row_name_ == row_name_ and after_criteria_met: + indexes.append(idx) + + return indexes + + def _get_row_index_after(row_name_: str, after_row_name: str) -> int: + return _get_row_indexes(row_name_, after_row_name=after_row_name)[0] + + def _insert_row_before(before_row_name: str, row_name: str, row_content: list[Any] | None) -> None: + if row_content is None: + row_content = ['' for _it in ret[_get_row_index(before_row_name)]][1:] + + ret.insert( + _get_row_index(before_row_name), + [row_name, *row_content], + ) + + def _insert_blank_line_before(before_row_name: str) -> None: + _insert_row_before(before_row_name, '', ['' for _it in ret[_get_row_index(before_row_name)]][1:]) + + def _calculate_pv_year_0(cash_flow_array: list) -> int: + """Calculate the absolute present value at Year 0 for a cash flow array using npf.npv.""" + return abs( + round( + npf.npv( + self.nominal_discount_rate.quantity().to('dimensionless').magnitude, + cash_flow_array, + ) + ) + ) + + after_tax_lcoe_and_ppa_price_header_row_title = 'AFTER-TAX LCOE AND PPA PRICE' + + # --- Backfill annual costs --- + # Pre-revenue years use after-tax net cash flow; operational years use SAM's annual costs. + annual_costs_usd_row_name = 'Annual costs ($)' + annual_costs = cf_ret[_get_row_index(annual_costs_usd_row_name)].copy() + after_tax_net_cash_flow_usd = cf_ret[_get_row_index('After-tax net cash flow ($)')] + + annual_costs_backfilled = [ + *after_tax_net_cash_flow_usd[1 : (self._pre_revenue_years_count + 1)], + *annual_costs[(self._pre_revenue_years_count + 1) :], + ] + + ret[_get_row_index(annual_costs_usd_row_name)][1:] = annual_costs_backfilled + + ppa_revenue_row_name = 'PPA revenue ($)' + ppa_revenue_row_index = _get_row_index_after( + ppa_revenue_row_name, after_tax_lcoe_and_ppa_price_header_row_title + ) + year_0_ppa_revenue: float = ret[ppa_revenue_row_index][self._pre_revenue_years_count] + if year_0_ppa_revenue != 0.0: + # Shouldn't happen + _log.warning(f'PPA revenue in Year 0 ({year_0_ppa_revenue}) is not zero, this is unexpected.') + + ret[ppa_revenue_row_index][1 : self._pre_revenue_years_count] = [year_0_ppa_revenue] * ( + self._pre_revenue_years_count - 1 + ) + + electricity_to_grid_kwh_row_name = 'Electricity to grid (kWh)' + electricity_to_grid = cf_ret[_get_row_index(electricity_to_grid_kwh_row_name)].copy() + electricity_to_grid_backfilled = [ + 0 if it == '' else (int(it) if is_int(it) else it) for it in electricity_to_grid[1:] + ] + + electricity_to_grid_kwh_row_index = _get_row_index_after( + electricity_to_grid_kwh_row_name, after_tax_lcoe_and_ppa_price_header_row_title + ) + ret[electricity_to_grid_kwh_row_index][1:] = electricity_to_grid_backfilled + + # --- PV of annual costs at Year 0 --- + pv_costs_year_0 = _calculate_pv_year_0(annual_costs_backfilled) + + pv_of_annual_costs_row_name = 'Present value of annual costs ($)' + pv_of_annual_costs_row_index = _get_row_index(pv_of_annual_costs_row_name) + ret[pv_of_annual_costs_row_index][1:] = [ + pv_costs_year_0, + *([''] * (self._pre_revenue_years_count - 1)), + ] + + # --- PV of annual energy costs (electrical portion) --- + pv_of_annual_energy_costs_row_name = 'Present value of annual energy costs ($)' + pv_of_annual_energy_costs_at_year_0_usd = int(round(pv_costs_year_0 * self.electricity_plant_frac_of_capex)) + _insert_row_before( + 'Present value of annual energy nominal (kWh)', + pv_of_annual_energy_costs_row_name, + [ + pv_of_annual_energy_costs_at_year_0_usd, + ], + ) + _insert_blank_line_before(pv_of_annual_energy_costs_row_name) + + # --- PV of electricity to grid at Year 0 --- + pv_electricity_to_grid_year_0_kwh = _calculate_pv_year_0(electricity_to_grid_backfilled) + + pv_of_annual_energy_row_name = 'Present value of annual energy nominal (kWh)' + for pv_of_annual_energy_row_index in _get_row_indexes(pv_of_annual_energy_row_name): + ret[pv_of_annual_energy_row_index][1:] = [ + pv_electricity_to_grid_year_0_kwh, + *([''] * (self._pre_revenue_years_count - 1)), + ] + + # --- LCOE nominal --- + def backfill_lcoe_nominal() -> None: + pv_energy_costs_year_0_usd = pv_costs_year_0 * self.electricity_plant_frac_of_capex + + lcoe_nominal_entry: float | str = 'NaN' + if pv_electricity_to_grid_year_0_kwh != 0: + lcoe_nominal_entry = pv_energy_costs_year_0_usd * 100 / pv_electricity_to_grid_year_0_kwh + + lcoe_nominal_row_name = 'LCOE Levelized cost of energy nominal (cents/kWh)' + lcoe_nominal_row_index = _get_row_index(lcoe_nominal_row_name) + + if isinstance(lcoe_nominal_entry, float): + lcoe_nominal_entry = round(lcoe_nominal_entry, 2) + + ret[lcoe_nominal_row_index][1:] = [ + lcoe_nominal_entry, + *([None] * (self._pre_revenue_years_count - 1)), + ] + + backfill_lcoe_nominal() + + # --- LPPA metrics --- + def backfill_lppa_metrics() -> None: + pv_of_ppa_revenue_row_index = _get_row_index_after( + 'Present value of PPA revenue ($)', after_tax_lcoe_and_ppa_price_header_row_title + ) + first_year_pv_of_ppa_revenue_usd = round( + npf.npv( + self.nominal_discount_rate.quantity().to('dimensionless').magnitude, + ret[ppa_revenue_row_index][1:], + ) + ) + ret[pv_of_ppa_revenue_row_index][1:] = [ + first_year_pv_of_ppa_revenue_usd, + *([None] * (self._pre_revenue_years_count - 1)), + ] + + ppa_price_row_index = _get_row_index('PPA price (cents/kWh)') + year_0_ppa_price: float = ret[ppa_price_row_index][self._pre_revenue_years_count] + if year_0_ppa_price != 0.0: + # Shouldn't happen + _log.warning(f'PPA price in Year 0 ({year_0_ppa_price}) is not zero, this is unexpected.') + + # TODO (maybe) + # ppa_revenue_all_years = [ + # *([year_0_ppa_price] * (self._pre_revenue_years_count - 1)), + # *ret[ppa_price_row_index][self._pre_revenue_years_count :], + # ] + # ret[_get_row_index('PPA price (cents/kWh)')][1:] = ppa_revenue_all_years + + first_year_lppa_cents_per_kwh: float | str = 'NaN' + first_year_pv_annual_energy = ret[_get_row_index(pv_of_annual_energy_row_name)][1] + + if ( + isinstance(first_year_pv_annual_energy, int) or isinstance(first_year_pv_annual_energy, float) + ) and first_year_pv_annual_energy != 0.0: + # Note: expected to be same in all pre-revenue years since both price and revenue are zero until COD + first_year_lppa_cents_per_kwh = round( + first_year_pv_of_ppa_revenue_usd * 100.0 / first_year_pv_annual_energy, 2 + ) + + lppa_row_name = 'LPPA Levelized PPA price nominal (cents/kWh)' + ret[_get_row_index(lppa_row_name)][1:] = [ + first_year_lppa_cents_per_kwh, + *([None] * self._pre_revenue_years_count), + ] + + backfill_lppa_metrics() + + # --- Non-electricity levelized metrics (LCOH, LCOC) --- + def insert_non_electricity_levelized_metrics( + amount_provided_kwh_row_name: str, # e.g. 'Heat provided (kWh)' + amount_provided_unit: str, # e.g. 'MMBTU' + levelized_cost_nominal_row_base_name: str, # e.g. 'LCOH Levelized cost of heating nominal' + pv_annual_non_elec_type_costs_row_name: str, # e.g. 'Present value of annual heat costs ($)' + pv_of_annual_amount_provided_row_base_name: str, # e.g. 'Present value of annual heat provided' + ) -> None: + + levelized_cost_nominal_row_name = f'{levelized_cost_nominal_row_base_name} ($/{amount_provided_unit})' + + amount_provided_kwh_row_index = _get_row_index( + amount_provided_kwh_row_name, raise_exception_if_not_present=False + ) + if amount_provided_kwh_row_index == -1: + return # No heat provided row, nothing to do + + # TODO maybe duplicate amount provided row after after_tax_lcoe_and_ppa_price_header_row_title to mirror + # electricity convention + # amount_provided_kwh_row_index = _get_row_index_after( + # amount_provided_kwh_row_name, after_tax_lcoe_and_ppa_price_header_row_title + # ) + + amount_provided = cf_ret[amount_provided_kwh_row_index].copy() + amount_provided_backfilled = [ + 0 if it == '' else (int(it) if is_int(it) else it) for it in amount_provided[1:] + ] + # PV of amount provided (e.g. heat) at Year 0 + pv_amount_provided_year_0_kwh = _calculate_pv_year_0(amount_provided_backfilled) + + # Thermal portion of PV of annual costs at Year 0 + pv_non_elec_costs_year_0_usd = pv_costs_year_0 * (1.0 - self.electricity_plant_frac_of_capex) + + # Levelized cost = thermal costs / amount provided (converted to target unit) + levelized_cost_nominal_entry: float | str = 'NaN' + if pv_amount_provided_year_0_kwh != 0: + levelized_cost_nominal_entry = ( + pv_non_elec_costs_year_0_usd + / quantity(pv_amount_provided_year_0_kwh, 'kWh').to(amount_provided_unit).magnitude + ) + + # Insert new row if levelized cost row does not exist (yet) + levelized_cost_nominal_row_index = _get_row_index( + levelized_cost_nominal_row_name, raise_exception_if_not_present=False + ) + + if levelized_cost_nominal_row_index == -1: + _insert_row_before('PROJECT STATE INCOME TAXES', levelized_cost_nominal_row_name, None) + _insert_blank_line_before('PROJECT STATE INCOME TAXES') + levelized_cost_nominal_row_index = _get_row_index(levelized_cost_nominal_row_name) + + if isinstance(levelized_cost_nominal_entry, float): + levelized_cost_nominal_entry = round(levelized_cost_nominal_entry, 2) + + ret[levelized_cost_nominal_row_index][1:] = [ + levelized_cost_nominal_entry, + *([None] * (self._pre_revenue_years_count - 1)), + ] + + # Insert new row if PV of non-electricity costs row does not exist (yet) + pv_annual_non_elec_type_costs_row_index = _get_row_index( + pv_annual_non_elec_type_costs_row_name, raise_exception_if_not_present=False + ) + + if pv_annual_non_elec_type_costs_row_index == -1: + _insert_row_before(levelized_cost_nominal_row_name, pv_annual_non_elec_type_costs_row_name, None) + pv_annual_non_elec_type_costs_row_index = _get_row_index(pv_annual_non_elec_type_costs_row_name) + + pv_annual_non_elec_type_costs_entry = pv_non_elec_costs_year_0_usd + if isinstance(pv_annual_non_elec_type_costs_entry, float): + pv_annual_non_elec_type_costs_entry = int(round(pv_annual_non_elec_type_costs_entry, 2)) + + ret[pv_annual_non_elec_type_costs_row_index][1:] = [ + pv_annual_non_elec_type_costs_entry, + *([None] * (self._pre_revenue_years_count - 1)), + ] + + pv_of_annual_amount_provided_unit: str = amount_provided_unit + pv_of_annual_amount_provided_row_name = ( + f'{pv_of_annual_amount_provided_row_base_name} ({pv_of_annual_amount_provided_unit})' + ) + # Insert new row if PV of amount provided row does not exist (yet) + pv_of_annual_amount_provided_row_index = _get_row_index( + pv_of_annual_amount_provided_row_name, raise_exception_if_not_present=False + ) + + if pv_of_annual_amount_provided_row_index == -1: + _insert_row_before(levelized_cost_nominal_row_name, pv_of_annual_amount_provided_row_name, None) + pv_of_annual_amount_provided_row_index = _get_row_index(pv_of_annual_amount_provided_row_name) + + pv_annual_amount_provided_entry = pv_amount_provided_year_0_kwh + if any(isinstance(pv_annual_amount_provided_entry, it) for it in [int, float]): + pv_annual_amount_provided_entry = int( + round( + quantity(pv_annual_amount_provided_entry, 'kWh') + .to(pv_of_annual_amount_provided_unit) + .magnitude, + 2, + ) + ) + + ret[pv_of_annual_amount_provided_row_index][1:] = [ + pv_annual_amount_provided_entry, + *([None] * (self._pre_revenue_years_count - 1)), + ] + + def insert_lcoh_metrics(): + insert_non_electricity_levelized_metrics( + amount_provided_kwh_row_name='Heat provided (kWh)', + amount_provided_unit='MMBTU', # TODO maybe should be derived from LCOH preferred units + levelized_cost_nominal_row_base_name=f'LCOH Levelized cost of heating nominal', + pv_annual_non_elec_type_costs_row_name='Present value of annual heat costs ($)', + pv_of_annual_amount_provided_row_base_name=f'Present value of annual heat provided', + ) + + insert_lcoh_metrics() + + def insert_lcoc_metrics(): + insert_non_electricity_levelized_metrics( + # See relevant TODO in geophires_x.EconomicsSam._get_capacity_payment_revenue_sources re: unit + amount_provided_kwh_row_name='Cooling provided (kWh)', + amount_provided_unit='MMBTU', # TODO maybe should be derived from LCOC preferred units + levelized_cost_nominal_row_base_name=f'LCOC Levelized cost of cooling nominal', + pv_annual_non_elec_type_costs_row_name='Present value of annual cooling costs ($)', + pv_of_annual_amount_provided_row_base_name=f'Present value of annual cooling provided', + ) + + insert_lcoc_metrics() + + return ret + + @property + def _may_consume_grid_electricity(self) -> bool: + """ + TODO maybe should be passed in explicitly instead of this potentially fragile derivation/assumption + """ + + try: + elec_to_grid_kwh_index = [it[0] for it in self._sam_cash_flow_profile_operational_years].index( + 'Electricity to grid (kWh)' + ) + except ValueError: + # Shouldn't happen (unless SAM financial engine stops including the line item, which would be + # backwards-incompatible) + return False + + return all( + float(it) == 0.0 if is_float(it) else it == '' + for it in self._sam_cash_flow_profile_operational_years[elec_to_grid_kwh_index][1:] + ) + + # noinspection PyMethodMayBeStatic + def _adjust_electricity_line_items_for_possible_grid_electricity_consumption( + self, cf_ret: list[list[Any]] + ) -> list[list[Any]]: + """ + Remove electricity line items that are not parameterized into SAM, to avoid inaccurately displaying the + default 0 values. For example, direct-use heat end-use requires pumping power that comes from grid electricity. + The cost of this electricity is accounted for in GEOPHIRES OPEX calculations, prior to SAM calculations. + + TODO to parameterize relevant factors into SAM and don't remove their line items + """ + + ret = cf_ret.copy() + + def _get_row_index(row_name_: str) -> int: + return [it[0] for it in ret].index(row_name_) + + def _remove_line_item(row_name_: str) -> None: + idx = _get_row_index(row_name_) + row = ret[idx] + if any(it != '' and (is_float(it) and float(it) != 0.0) for it in row[1:]): + raise RuntimeError( + f'Line item "{row[0]}" has non-zero values. ' + f'This is unexpected and probably indicates an internal error or bug.' + ) + + ret.pop(idx) + + for line_item in ['Electricity from grid (kWh)', 'Electricity purchase ($)']: + _remove_line_item(line_item) + + return ret + + @property + def sam_after_tax_net_cash_flow_all_years(self) -> list[float]: + return _after_tax_net_cash_flow_all_years(self.sam_cash_flow_profile, self._pre_revenue_years_count) + + +@dataclass +class CapacityPaymentRevenueSource: + name: str + + revenue_usd: list[float] + + amount_provided_label: str | None = None + amount_provided: list[float] | None = None + + price_label: str | None = None + price: list[float] | None = None + + +def _after_tax_net_cash_flow_all_years(cash_flow: list[list[Any]], pre_revenue_years_count: int) -> list[float]: + return _net_cash_flow_all_years(cash_flow, pre_revenue_years_count, tax_qualifier='after-tax') + + +def _net_cash_flow_all_years( + cash_flow: list[list[Any]], pre_revenue_years_count: int, tax_qualifier='after-tax' +) -> list[float]: + if tax_qualifier not in ['after-tax', 'pre-tax']: + raise ValueError(f'Invalid tax qualifier: {tax_qualifier}') + + def _get_row(row_name__: str) -> list[Any]: + for r in cash_flow: + if r[0] == row_name__: + return r[1:] + + raise ValueError(f'Could not find row with name {row_name__}') + + def _construction_returns_row(_construction_tax_qualifier: str) -> list[Any]: + returns_row_name = ( + f'Total {_construction_tax_qualifier} returns [construction] ($)' + if tax_qualifier == 'pre-tax' + else f'After-tax net cash flow [construction] ($)' + ) + return _get_row(returns_row_name) + + try: + construction_returns_row = _construction_returns_row(tax_qualifier) + except ValueError as ve: + if tax_qualifier == 'pre-tax': + # TODO log warning + construction_returns_row = _construction_returns_row('after-tax') + else: + raise ve + + return [ + *[float(it) for it in construction_returns_row if is_float(it)], + *[float(it) for it in _get_row(f'Total {tax_qualifier} returns ($)')[pre_revenue_years_count:] if is_float(it)], + ] diff --git a/src/geophires_x/EconomicsUtils.py b/src/geophires_x/EconomicsUtils.py index ab54cd14c..db0410979 100644 --- a/src/geophires_x/EconomicsUtils.py +++ b/src/geophires_x/EconomicsUtils.py @@ -2,7 +2,7 @@ from geophires_x.GeoPHIRESUtils import is_float, is_int from geophires_x.Parameter import OutputParameter, SCHEDULE_DSL_MULTIPLIER_SYMBOL -from geophires_x.Units import Units, PercentUnit, TimeUnit, CurrencyUnit, CurrencyFrequencyUnit +from geophires_x.Units import Units, PercentUnit, TimeUnit, CurrencyUnit, CurrencyFrequencyUnit, EnergyCostUnit CONSTRUCTION_CAPEX_SCHEDULE_PARAMETER_NAME = 'Construction CAPEX Schedule' @@ -50,6 +50,26 @@ def BuildPricingModel( return Price +def lcoh_output_parameter() -> OutputParameter: + return OutputParameter( + Name="LCOH", + display_name='Direct-Use heat breakeven price (LCOH)', + UnitType=Units.ENERGYCOST, + PreferredUnits=EnergyCostUnit.DOLLARSPERMMBTU, # $/MMBTU + CurrentUnits=EnergyCostUnit.DOLLARSPERMMBTU, + ) + + +def lcoc_output_parameter() -> OutputParameter: + return OutputParameter( + Name="LCOC", + display_name='Direct-Use Cooling Breakeven Price (LCOC)', + UnitType=Units.ENERGYCOST, + PreferredUnits=EnergyCostUnit.DOLLARSPERMMBTU, + CurrentUnits=EnergyCostUnit.DOLLARSPERMMBTU, + ) + + _SAM_EM_MOIC_RETURNS_TAX_QUALIFIER = 'after-tax' diff --git a/src/geophires_x/OptionList.py b/src/geophires_x/OptionList.py index 77d84f528..6d0dfc6ce 100644 --- a/src/geophires_x/OptionList.py +++ b/src/geophires_x/OptionList.py @@ -39,6 +39,18 @@ class EndUseOptions(GeophiresInputEnum): COGENERATION_PARALLEL_EXTRA_HEAT = 51, f'Cogeneration Parallel Cycle, {_EXTRA_HEAT_SNIPPET}' COGENERATION_PARALLEL_EXTRA_ELECTRICITY = 52, f'Cogeneration Parallel Cycle, {_EXTRA_ELECTRICITY_SNIPPET}' + @property + def is_cogeneration_end_use_option(self) -> bool: + return self.name.startswith('COGENERATION') + + @property + def has_electricity_component(self) -> bool: + return self == self.ELECTRICITY or self.is_cogeneration_end_use_option + + @property + def has_direct_use_heat_component(self) -> bool: + return self == self.HEAT or self.is_cogeneration_end_use_option + @staticmethod def from_input_string(input_string: str) -> 'EndUseOptions': """ diff --git a/src/geophires_x/Outputs.py b/src/geophires_x/Outputs.py index 5a3d24a83..4b2b5ed4b 100644 --- a/src/geophires_x/Outputs.py +++ b/src/geophires_x/Outputs.py @@ -21,6 +21,7 @@ from geophires_x.OptionList import EndUseOptions, EconomicModel, ReservoirModel, FractureShape, ReservoirVolume, \ PlantType from geophires_x.Parameter import Parameter +from geophires_x.Units import EnergyUnit NL = '\n' @@ -189,17 +190,22 @@ def PrintOutputs(self, model: Model): f.write(NL) f.write(f' {model.surfaceplant.enduse_option_output.display_name}: ' f'{model.surfaceplant.enduse_option_output.value}\n') + if model.surfaceplant.plant_type.value in [PlantType.ABSORPTION_CHILLER, PlantType.HEAT_PUMP, PlantType.DISTRICT_HEATING]: f.write(' Surface Application: ' + str(model.surfaceplant.plant_type.value.value) + NL) + if model.surfaceplant.enduse_option.value in [EndUseOptions.ELECTRICITY, EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT, EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY, EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT, EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY]: # there is an electricity component f.write(f' Average Net Electricity Production: {np.average(model.surfaceplant.NetElectricityProduced.value):10.2f} ' + model.surfaceplant.NetElectricityProduced.CurrentUnits.value + NL) - if model.surfaceplant.enduse_option.value is not EndUseOptions.ELECTRICITY: + + if model.surfaceplant.enduse_option.value.has_direct_use_heat_component: # there is a direct-use component - f.write(f' Average Direct-Use Heat Production: {np.average(model.surfaceplant.HeatProduced.value):10.2f} '+ model.surfaceplant.HeatProduced.CurrentUnits.value + NL) + f.write(f' Average Direct-Use Heat Production: {np.average(model.surfaceplant.HeatProduced.value):10.2f} {model.surfaceplant.HeatProduced.CurrentUnits.value}\n') + if model.surfaceplant.plant_type.value == PlantType.DISTRICT_HEATING: f.write(f' Annual District Heating Demand: {np.average(model.surfaceplant.annual_heating_demand.value):10.2f} ' + model.surfaceplant.annual_heating_demand.CurrentUnits.value + NL) f.write(f' Average Annual Geothermal Heat Production: {sum(model.surfaceplant.dh_geothermal_heating.value * 24) / model.surfaceplant.plant_lifetime.value / 1e3:10.2f} ' + model.surfaceplant.annual_heating_demand.CurrentUnits.value + NL) f.write(f' Average Annual Peaking Fuel Heat Production: {sum(model.surfaceplant.dh_natural_gas_heating.value * 24) / model.surfaceplant.plant_lifetime.value / 1e3:10.2f} ' + model.surfaceplant.annual_heating_demand.CurrentUnits.value + NL) + if model.surfaceplant.plant_type.value == PlantType.ABSORPTION_CHILLER: f.write(f' Average Cooling Production: {np.average(model.surfaceplant.cooling_produced.value):10.2f} ' + model.surfaceplant.cooling_produced.CurrentUnits.value + NL) @@ -210,18 +216,21 @@ def PrintOutputs(self, model: Model): f.write(f' {model.economics.LCOH.display_name}: {model.economics.LCOH.value:10.2f} {model.economics.LCOH.CurrentUnits.value}\n') elif model.surfaceplant.enduse_option.value in [EndUseOptions.HEAT] and model.surfaceplant.plant_type.value == PlantType.ABSORPTION_CHILLER: f.write(f' {model.economics.LCOC.display_name}: {model.economics.LCOC.value:10.2f} {model.economics.LCOC.CurrentUnits.value}\n') - elif model.surfaceplant.enduse_option.value in [EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT, - EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY]: + elif model.surfaceplant.enduse_option.value.is_cogeneration_end_use_option: f.write(f' {model.economics.LCOE.display_name}: {model.economics.LCOE.value:10.2f} {model.economics.LCOE.CurrentUnits.value}\n') f.write(f' {model.economics.LCOH.display_name}: {model.economics.LCOH.value:10.2f} {model.economics.LCOH.CurrentUnits.value}\n') if is_sam_econ_model: f.write(f' {Outputs._field_label(econ.capex_total.display_name, 50)}{econ.capex_total.value:10.2f} {econ.capex_total.CurrentUnits.value}\n') - f.write(f' {Outputs._field_label(econ.capex_total_per_kw.display_name, 50)}{econ.capex_total_per_kw.value:10.0f} {econ.capex_total_per_kw.CurrentUnits.value}\n') + + capex_per_kw_output_params: list[OutputParameter] = [econ.capex_total_per_kwe] \ + if model.surfaceplant.enduse_option.value == EndUseOptions.ELECTRICITY \ + else [econ.capex_allocated_per_kwe, econ.capex_allocated_per_kwth] \ + if model.surfaceplant.enduse_option.value.is_cogeneration_end_use_option \ + else [] # TODO add heat-only CAPEX per kWth output parameter + + for capex_per_kw_output_param in capex_per_kw_output_params: + f.write(f' {Outputs._field_label(capex_per_kw_output_param.display_name, 50)}{capex_per_kw_output_param.value:10.0f} {capex_per_kw_output_param.CurrentUnits.value}\n') f.write(f' Number of production wells: {model.wellbores.nprod.value:10.0f}'+NL) f.write(f' Number of injection wells: {model.wellbores.ninj.value:10.0f}'+NL) @@ -317,13 +326,8 @@ def PrintOutputs(self, model: Model): project_payback_period_label = Outputs._field_label(model.economics.ProjectPaybackPeriod.display_name, 56) f.write(f' {project_payback_period_label}{project_payback_period_display}\n') - if model.surfaceplant.enduse_option.value in [EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT, - EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY, - EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY]: - f.write(f' CHP: Percent cost allocation for electrical plant: {model.economics.CAPEX_heat_electricity_plant_ratio.value*100.0:10.2f} %\n') + if model.surfaceplant.enduse_option.value.is_cogeneration_end_use_option: + f.write(f' {econ.chp_percent_cost_allocation_for_electrical_plant.display_name}: {econ.chp_percent_cost_allocation_for_electrical_plant.value:10.2f} {econ.chp_percent_cost_allocation_for_electrical_plant.CurrentUnits.value}\n') if model.surfaceplant.enduse_option.value in [EndUseOptions.ELECTRICITY]: f.write(f' Estimated Jobs Created: {model.economics.jobs_created.value}\n') @@ -337,18 +341,22 @@ def PrintOutputs(self, model: Model): f.write(f' Water loss rate: {model.reserv.waterloss.value:10.1f} {model.reserv.waterloss.CurrentUnits.value}\n') f.write(f' Pump efficiency: {model.surfaceplant.pump_efficiency.value:10.1f} ' + model.surfaceplant.pump_efficiency.CurrentUnits.value + NL) f.write(f' Injection temperature: {model.wellbores.Tinj.value:10.1f} ' + model.wellbores.Tinj.CurrentUnits.value + NL) + if model.wellbores.rameyoptionprod.value: f.write(' Production Wellbore heat transmission calculated with Ramey\'s model\n') f.write(f' Average production well temperature drop: {np.average(model.wellbores.ProdTempDrop.value):10.1f} ' + model.wellbores.ProdTempDrop.PreferredUnits.value + NL) else: f.write(' User-provided production well temperature drop\n') f.write(f' Constant production well temperature drop: {model.wellbores.tempdropprod.value:10.1f} ' + model.wellbores.tempdropprod.PreferredUnits.value + NL) + f.write(f' Flowrate per production well: {model.wellbores.prodwellflowrate.value:10.1f} ' + model.wellbores.prodwellflowrate.CurrentUnits.value + NL) f.write(f' {model.wellbores.injection_well_casing_inner_diameter.display_name}: {model.wellbores.injection_well_casing_inner_diameter.value:10.3f} {model.wellbores.injection_well_casing_inner_diameter.CurrentUnits.value}\n') f.write(f' {model.wellbores.production_well_casing_inner_diameter.display_name}: {model.wellbores.production_well_casing_inner_diameter.value:10.3f} {model.wellbores.production_well_casing_inner_diameter.CurrentUnits.value}\n') f.write(f' {model.wellbores.redrill.display_name}: {model.wellbores.redrill.value:10.0f}\n') - if model.surfaceplant.enduse_option.value in [EndUseOptions.ELECTRICITY, EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT, EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY, EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT, EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY]: - f.write(' Power plant type: ' + str(model.surfaceplant.plant_type.value.value) + NL) + + if model.surfaceplant.enduse_option.value.has_electricity_component: + f.write(f' Power plant type: {str(model.surfaceplant.plant_type.value.value)}\n') + f.write(NL) f.write(NL) f.write(' ***RESOURCE CHARACTERISTICS***\n') @@ -441,6 +449,7 @@ def PrintOutputs(self, model: Model): f.write(NL) f.write(' ***RESERVOIR SIMULATION RESULTS***\n') f.write(NL) + # FIXME should be using CurrentUnits instead of PreferredUnits f.write(f' Maximum Production Temperature: {np.max(model.wellbores.ProducedTemperature.value):10.1f} ' + model.wellbores.ProducedTemperature.PreferredUnits.value + NL) f.write(f' Average Production Temperature: {np.average(model.wellbores.ProducedTemperature.value):10.1f} ' + model.wellbores.ProducedTemperature.PreferredUnits.value + NL) f.write(f' Minimum Production Temperature: {np.min(model.wellbores.ProducedTemperature.value):10.1f} ' + model.wellbores.ProducedTemperature.PreferredUnits.value + NL) @@ -487,12 +496,17 @@ def PrintOutputs(self, model: Model): f.write(f' {econ.Cstim.display_name}: {econ.Cstim.value:10.2f} {econ.Cstim.CurrentUnits.value}\n') f.write(f' {econ.Cplant.display_name}: {econ.Cplant.value:10.2f} {econ.Cplant.CurrentUnits.value}\n') + if model.surfaceplant.enduse_option.value.is_cogeneration_end_use_option: + f.write(f' {econ.CAPEX_cost_electrical_plant.display_name}: {econ.CAPEX_cost_electrical_plant.value:10.2f} {econ.CAPEX_cost_electrical_plant.CurrentUnits.value}\n') + f.write(f' {econ.CAPEX_cost_heat_plant.display_name}: {econ.CAPEX_cost_heat_plant.value:10.2f} {econ.CAPEX_cost_heat_plant.CurrentUnits.value}\n') + if model.surfaceplant.plant_type.value == PlantType.ABSORPTION_CHILLER: - f.write(f' of which Absorption Chiller Cost: {model.economics.chillercapex.value:10.2f} ' + model.economics.Cplant.CurrentUnits.value + NL) + f.write(f' of which Absorption Chiller Cost: {econ.chillercapex.value:10.2f} {econ.chillercapex.CurrentUnits.value}\n') if model.surfaceplant.plant_type.value == PlantType.HEAT_PUMP: - f.write(f' of which Heat Pump Cost: {model.economics.heatpumpcapex.value:10.2f} ' + model.economics.Cplant.CurrentUnits.value + NL) + f.write(f' of which Heat Pump Cost: {econ.heatpumpcapex.value:10.2f} {econ.heatpumpcapex.CurrentUnits.value}\n') if model.surfaceplant.plant_type.value == PlantType.DISTRICT_HEATING: - f.write(f' of which Peaking Boiler Cost: {model.economics.peakingboilercost.value:10.2f} ' + model.economics.peakingboilercost.CurrentUnits.value + NL) + f.write(f' of which Peaking Boiler Cost: {econ.peakingboilercost.value:10.2f} {econ.peakingboilercost.CurrentUnits.value}\n') + f.write(f' {model.economics.Cgath.display_name}: {model.economics.Cgath.value:10.2f} {model.economics.Cgath.CurrentUnits.value}\n') if model.surfaceplant.piping_length.value > 0: @@ -501,7 +515,7 @@ def PrintOutputs(self, model: Model): if model.surfaceplant.plant_type.value == PlantType.DISTRICT_HEATING: f.write(f' District Heating System Cost: {model.economics.dhdistrictcost.value:10.2f} {model.economics.dhdistrictcost.CurrentUnits.value}\n') - f.write(f' Total surface equipment costs: {(model.economics.Cplant.value+model.economics.Cgath.value):10.2f} ' + model.economics.Cplant.CurrentUnits.value + NL) + f.write(f' {econ.surface_equipment_costs_total.display_name}: {econ.surface_equipment_costs_total.value:10.2f} {econ.surface_equipment_costs_total.CurrentUnits.value}\n') if model.economics.totalcapcost.Valid and model.wellbores.redrill.value > 0: f.write(f' Drilling and completion costs (for redrilling):{econ.Cwell.value:10.2f} {econ.Cwell.CurrentUnits.value}\n') @@ -569,8 +583,9 @@ def PrintOutputs(self, model: Model): f.write(f' {model.economics.Coamwell.display_name}: {model.economics.Coamwell.value:10.2f} {model.economics.Coamwell.CurrentUnits.value}\n') f.write(f' {model.economics.Coamplant.display_name}: {model.economics.Coamplant.value:10.2f} {model.economics.Coamplant.CurrentUnits.value}\n') f.write(f' {model.economics.Coamwater.display_name}: {model.economics.Coamwater.value:10.2f} {model.economics.Coamwater.CurrentUnits.value}\n') + if model.surfaceplant.plant_type.value in [PlantType.INDUSTRIAL, PlantType.ABSORPTION_CHILLER, PlantType.HEAT_PUMP, PlantType.DISTRICT_HEATING]: - f.write(f' Average Reservoir Pumping Cost: {model.economics.averageannualpumpingcosts.value:10.2f} {model.economics.averageannualpumpingcosts.CurrentUnits.value}\n') + f.write(f' {econ.averageannualpumpingcosts.display_name}: {econ.averageannualpumpingcosts.value:10.2f} {econ.averageannualpumpingcosts.CurrentUnits.value}\n') if model.surfaceplant.plant_type.value == PlantType.ABSORPTION_CHILLER: f.write(f' Absorption Chiller O&M Cost: {model.economics.chilleropex.value:10.2f} {model.economics.chilleropex.CurrentUnits.value}\n') if model.surfaceplant.plant_type.value == PlantType.HEAT_PUMP: @@ -596,17 +611,17 @@ def PrintOutputs(self, model: Model): else: f.write(f' {econ.Coam.display_name}: {econ.Coam.value:10.2f} {econ.Coam.CurrentUnits.value}\n') - f.write(NL) - f.write(NL) - f.write(' ***SURFACE EQUIPMENT SIMULATION RESULTS***\n') - f.write(NL) - if model.surfaceplant.enduse_option.value in [EndUseOptions.ELECTRICITY, EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT, EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY, EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT, EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY]: # there is an electricity componenent: + f.write('\n\n ***SURFACE EQUIPMENT SIMULATION RESULTS***\n') + + if model.surfaceplant.enduse_option.value.has_electricity_component: + sp = model.surfaceplant + # FIXME switch to CurrentUnits instead of PreferredUnits f.write(f' Initial geofluid availability: {model.surfaceplant.Availability.value[0]:10.2f} ' + model.surfaceplant.Availability.PreferredUnits.value + NL) f.write(f' Maximum Total Electricity Generation: {np.max(model.surfaceplant.ElectricityProduced.value):10.2f} ' + model.surfaceplant.ElectricityProduced.PreferredUnits.value + NL) f.write(f' Average Total Electricity Generation: {np.average(model.surfaceplant.ElectricityProduced.value):10.2f} ' + model.surfaceplant.ElectricityProduced.PreferredUnits.value + NL) f.write(f' Minimum Total Electricity Generation: {np.min(model.surfaceplant.ElectricityProduced.value):10.2f} ' + model.surfaceplant.ElectricityProduced.PreferredUnits.value + NL) f.write(f' Initial Total Electricity Generation: {model.surfaceplant.ElectricityProduced.value[0]:10.2f} ' + model.surfaceplant.ElectricityProduced.PreferredUnits.value + NL) - f.write(f' Maximum Net Electricity Generation: {np.max(model.surfaceplant.NetElectricityProduced.value):10.2f} ' + model.surfaceplant.NetElectricityProduced.PreferredUnits.value + NL) + f.write(f' {sp.NetElectricityProducedMax.display_name}: {sp.NetElectricityProducedMax.value:10.2f} {sp.NetElectricityProducedMax.CurrentUnits.value}\n') f.write(f' Average Net Electricity Generation: {np.average(model.surfaceplant.NetElectricityProduced.value):10.2f} ' + model.surfaceplant.NetElectricityProduced.PreferredUnits.value + NL) f.write(f' Minimum Net Electricity Generation: {np.min(model.surfaceplant.NetElectricityProduced.value):10.2f} ' + model.surfaceplant.NetElectricityProduced.PreferredUnits.value + NL) f.write(f' Initial Net Electricity Generation: {model.surfaceplant.NetElectricityProduced.value[0]:10.2f} ' + model.surfaceplant.NetElectricityProduced.PreferredUnits.value + NL) @@ -617,15 +632,25 @@ def PrintOutputs(self, model: Model): ipp_nip = model.wellbores.PumpingPower.value[0] / model.surfaceplant.NetElectricityProduced.value[0] f.write(f' Initial pumping power/net installed power: {(ipp_nip*100):10.2f} %\n') - if model.surfaceplant.enduse_option.value in [EndUseOptions.HEAT, PlantType.ABSORPTION_CHILLER, PlantType.HEAT_PUMP, EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT, EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY, EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT, EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY]: # geothermal heating component: - f.write(f' Maximum Net Heat Production: {np.max(model.surfaceplant.HeatProduced.value):10.2f} ' + model.surfaceplant.HeatProduced.PreferredUnits.value + NL) + if model.surfaceplant.enduse_option.value.has_direct_use_heat_component or model.surfaceplant.plant_type.value in [PlantType.ABSORPTION_CHILLER, PlantType.HEAT_PUMP]: + f.write(f' {model.surfaceplant.HeatProducedMax.display_name}: {model.surfaceplant.HeatProducedMax.value:10.2f} {model.surfaceplant.HeatProduced.CurrentUnits.value}\n') + # FIXME should be CurrentUnits instead of PreferredUnits f.write(f' Average Net Heat Production: {np.average(model.surfaceplant.HeatProduced.value):10.2f} ' + model.surfaceplant.HeatProduced.PreferredUnits.value + NL) f.write(f' Minimum Net Heat Production: {np.min(model.surfaceplant.HeatProduced.value):10.2f} ' + model.surfaceplant.HeatProduced.PreferredUnits.value + NL) f.write(f' Initial Net Heat Production: {model.surfaceplant.HeatProduced.value[0]:10.2f} ' + model.surfaceplant.HeatProduced.PreferredUnits.value + NL) - f.write(f' Average Annual Heat Production: {np.average(model.surfaceplant.HeatkWhProduced.value/1E6):10.2f} GWh' + NL) + + avg_annual_heat_production_display_units: EnergyUnit = EnergyUnit.GWH + # TODO the average value should be its own output parameter instead of being calculated here + avg_annual_heat_production_value = np.average(model.surfaceplant.HeatkWhProduced.quantity().to( + # TODO this conversion should occur in ConvertOutputUnits instead + avg_annual_heat_production_display_units + ).magnitude) + f.write(f' Average Annual Heat Production: {avg_annual_heat_production_value:10.2f} {avg_annual_heat_production_display_units.value}\n') if model.surfaceplant.plant_type.value == PlantType.HEAT_PUMP: + # TODO define dedicated output parameter f.write(f' Average Annual Heat Pump Electricity Use: {np.average(model.surfaceplant.heat_pump_electricity_kwh_used.value / 1E6):10.2f} ' + 'GWh/year' + NL) + if model.surfaceplant.plant_type.value == PlantType.ABSORPTION_CHILLER: f.write(f' Maximum Cooling Production: {np.max(model.surfaceplant.cooling_produced.value):10.2f} ' + model.surfaceplant.cooling_produced.PreferredUnits.value + NL) f.write(f' Average Cooling Production: {np.average(model.surfaceplant.cooling_produced.value):10.2f} ' + model.surfaceplant.cooling_produced.PreferredUnits.value + NL) @@ -656,7 +681,7 @@ def PrintOutputs(self, model: Model): f.write(' ************************************************************\n') f.write(' * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE *\n') f.write(' ************************************************************\n') - if model.surfaceplant.enduse_option.value == EndUseOptions.ELECTRICITY: # only electricity + if model.surfaceplant.enduse_option.value == EndUseOptions.ELECTRICITY: # only electricity f.write(' YEAR THERMAL GEOFLUID PUMP NET FIRST LAW\n') f.write(' DRAWDOWN TEMPERATURE POWER POWER EFFICIENCY\n') f.write(' (' + model.wellbores.ProducedTemperature.CurrentUnits.value+') (' + model.wellbores.PumpingPower.CurrentUnits.value + ') (' + model.surfaceplant.NetElectricityProduced.CurrentUnits.value + ') (%)\n') @@ -739,7 +764,7 @@ def PrintOutputs(self, model: Model): model.surfaceplant.HeatkWhExtracted.value[i]/1E6, model.surfaceplant.RemainingReservoirHeatContent.value[i], (model.reserv.InitialReservoirHeatContent.value-model.surfaceplant.RemainingReservoirHeatContent.value[i])*100/model.reserv.InitialReservoirHeatContent.value)+NL) - elif model.surfaceplant.plant_type.value == PlantType.ABSORPTION_CHILLER: # absorption chiller + elif model.surfaceplant.plant_type.value == PlantType.ABSORPTION_CHILLER: # absorption chiller f.write(' YEAR COOLING HEAT RESERVOIR PERCENTAGE OF\n') f.write(' PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED\n') f.write(' (GWh/year) (GWh/year) (10^15 J) (%)\n') @@ -750,7 +775,7 @@ def PrintOutputs(self, model: Model): model.surfaceplant.RemainingReservoirHeatContent.value[i], (model.reserv.InitialReservoirHeatContent.value-model.surfaceplant.RemainingReservoirHeatContent.value[i]) * 100 / model.reserv.InitialReservoirHeatContent.value)+NL) - elif model.surfaceplant.plant_type.value == PlantType.HEAT_PUMP: # heat pump + elif model.surfaceplant.plant_type.value == PlantType.HEAT_PUMP: # heat pump f.write(' YEAR HEATING RESERVOIR HEAT HEAT PUMP RESERVOIR PERCENTAGE OF\n') f.write(' PROVIDED EXTRACTED ELECTRICITY USE HEAT CONTENT TOTAL HEAT MINED\n') f.write(' (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%)\n') @@ -761,7 +786,7 @@ def PrintOutputs(self, model: Model): model.surfaceplant.RemainingReservoirHeatContent.value[i], (model.reserv.InitialReservoirHeatContent.value-model.surfaceplant.RemainingReservoirHeatContent.value[i]) * 100 / model.reserv.InitialReservoirHeatContent.value)+NL) - elif model.surfaceplant.enduse_option.value in [EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT, EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY, EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY, EndUseOptions.COGENERATION_BOTTOMING_EXTRA_HEAT, EndUseOptions.COGENERATION_PARALLEL_EXTRA_HEAT, EndUseOptions.COGENERATION_PARALLEL_EXTRA_ELECTRICITY]: #co-gen + elif model.surfaceplant.enduse_option.value.is_cogeneration_end_use_option: f.write(' YEAR HEAT ELECTRICITY HEAT RESERVOIR PERCENTAGE OF\n') f.write(' PROVIDED PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED\n') f.write(' (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%)\n') @@ -773,7 +798,7 @@ def PrintOutputs(self, model: Model): model.surfaceplant.RemainingReservoirHeatContent.value[i], (model.reserv.InitialReservoirHeatContent.value-model.surfaceplant.RemainingReservoirHeatContent.value[i])*100/model.reserv.InitialReservoirHeatContent.value)+NL) - elif model.surfaceplant.plant_type.value in [PlantType.DISTRICT_HEATING]: # district-heating + elif model.surfaceplant.plant_type.value in [PlantType.DISTRICT_HEATING]: # district-heating f.write(' YEAR GEOTHERMAL PEAKING BOILER RESERVOIR HEAT RESERVOIR PERCENTAGE OF\n') f.write(' HEATING PROVIDED HEATING PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED\n') f.write(' (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%)\n') @@ -784,7 +809,7 @@ def PrintOutputs(self, model: Model): model.surfaceplant.HeatkWhExtracted.value[i] / 1E6, model.surfaceplant.RemainingReservoirHeatContent.value[i], (model.reserv.InitialReservoirHeatContent.value-model.surfaceplant.RemainingReservoirHeatContent.value[i]) * 100 / model.reserv.InitialReservoirHeatContent.value)+NL) - elif model.surfaceplant.enduse_option.value == EndUseOptions.HEAT: # only direct-use + elif model.surfaceplant.enduse_option.value == EndUseOptions.HEAT: # only direct-use f.write(' YEAR HEAT HEAT RESERVOIR PERCENTAGE OF\n') f.write(' PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED\n') f.write(' (GWh/year) (GWh/year) (10^15 J) (%)\n') diff --git a/src/geophires_x/Parameter.py b/src/geophires_x/Parameter.py index a3a10e2f1..c7f332737 100644 --- a/src/geophires_x/Parameter.py +++ b/src/geophires_x/Parameter.py @@ -34,12 +34,15 @@ class HasQuantity(ABC): - def quantity(self) -> PlainQuantity: + def quantity(self, as_units: str | Enum | None = None) -> PlainQuantity: """ + :param as_units: Optional units to convert to. If None, will use current units. + :rtype: pint.registry.Quantity - note type annotation uses PlainQuantity due to issues with python 3.8 failing to import the Quantity TypeAlias """ + # noinspection PyUnresolvedReferences quant_val = self.value if isinstance(quant_val, str): @@ -48,7 +51,14 @@ def quantity(self) -> PlainQuantity: if isinstance(quant_val, Iterable): quant_val = [float(it) for it in quant_val] - return _ureg.Quantity(quant_val, str(self.CurrentUnits.value)) + base_q = _ureg.Quantity(quant_val, str(convertible_unit(self.CurrentUnits.value))) + if as_units is None: + return base_q + + if isinstance(as_units, Enum): + return base_q.to(convertible_unit(as_units.value)) + + return base_q.to(convertible_unit(as_units)) @dataclass diff --git a/src/geophires_x/SUTRAOutputs.py b/src/geophires_x/SUTRAOutputs.py index 071082420..6c6df708a 100644 --- a/src/geophires_x/SUTRAOutputs.py +++ b/src/geophires_x/SUTRAOutputs.py @@ -147,7 +147,7 @@ def PrintOutputs(self, model: Model): f.write(f" Average Annual Auxiliary Heating Production: {np.average(model.surfaceplant.AnnualAuxiliaryHeatProduced.value):10.2f} " + model.surfaceplant.AnnualAuxiliaryHeatProduced.PreferredUnits.value + NL) f.write(f" Average Annual Total Heating Production: {np.average(model.surfaceplant.AnnualTotalHeatProduced.value):10.2f} " + model.surfaceplant.AnnualTotalHeatProduced.PreferredUnits.value + NL) f.write(f" Average Pumping Power: {np.average(model.wellbores.PumpingPower.value):10.2f} {model.wellbores.PumpingPower.CurrentUnits.value}{NL}") - f.write(f" Average Annual Electricity Use for Pumping: {np.average(model.surfaceplant.PumpingkWh.value):10.2f} " + model.surfaceplant.PumpingkWh.PreferredUnits.value + NL) + f.write(f" Average {model.surfaceplant.PumpingkWh.display_name}: {np.average(model.surfaceplant.PumpingkWh.value):10.2f} {model.surfaceplant.PumpingkWh.CurrentUnits.value}\n") f.write(NL) f.write(NL) f.write(' ***CAPITAL COSTS (M$)***\n') diff --git a/src/geophires_x/SUTRAWellBores.py b/src/geophires_x/SUTRAWellBores.py index 60fa81d9f..8dc0f0750 100644 --- a/src/geophires_x/SUTRAWellBores.py +++ b/src/geophires_x/SUTRAWellBores.py @@ -103,20 +103,6 @@ def __init__(self, model: Model): 'pressure drop in the reservoir between injection well and production well (see docs)', ) - self.Tinj = self.ParameterDict[self.Tinj.Name] = floatParameter( - "Injection Temperature", - value=70.0, - DefaultValue=70.0, - Min=0.0, - Max=200.0, - UnitType=Units.TEMPERATURE, - PreferredUnits=TemperatureUnit.CELSIUS, - CurrentUnits=TemperatureUnit.CELSIUS, - Required=True, - ErrMessage="assume default injection temperature (70 deg.C)", - ToolTipText="Constant geofluid injection temperature at injection wellhead.", - ) - # local variable initiation sclass = str(__class__).replace("", "") diff --git a/src/geophires_x/SurfacePlant.py b/src/geophires_x/SurfacePlant.py index f3cb8b6d9..6113add02 100644 --- a/src/geophires_x/SurfacePlant.py +++ b/src/geophires_x/SurfacePlant.py @@ -397,8 +397,8 @@ def __init__(self, model: Model): PreferredUnits=EnergyCostUnit.DOLLARSPERKWH, CurrentUnits=EnergyCostUnit.DOLLARSPERKWH, ErrMessage="assume default electricity rate ($0.07/kWh)", - ToolTipText="Price of electricity to calculate pumping costs in direct-use heat only mode or revenue" + - " from electricity sales in CHP mode." + ToolTipText="Price of electricity to calculate pumping costs in direct-use heat only mode or revenue " + "from electricity sales in CHP mode." ) self.heat_price = self.ParameterDict[self.heat_price.Name] = floatParameter( "Heat Rate", @@ -532,10 +532,10 @@ def __init__(self, model: Model): CurrentUnits=EnergyFrequencyUnit.GWPERYEAR ) self.PumpingkWh = self.OutputParameterDict[self.PumpingkWh.Name] = OutputParameter( - Name="annual electricity production", + Name="Annual Electricity Use for Pumping", UnitType=Units.ENERGYFREQUENCY, - PreferredUnits=EnergyFrequencyUnit.KWPERYEAR, - CurrentUnits=EnergyFrequencyUnit.KWPERYEAR + PreferredUnits=EnergyFrequencyUnit.KWhPERYEAR, + CurrentUnits=EnergyFrequencyUnit.KWhPERYEAR ) self.ElectricityProduced = self.OutputParameterDict[self.ElectricityProduced.Name] = OutputParameter( Name="Total Electricity Production", @@ -550,6 +550,13 @@ def __init__(self, model: Model): PreferredUnits=PowerUnit.MW, CurrentUnits=PowerUnit.MW ) + self.NetElectricityProducedMax = self.OutputParameterDict[self.NetElectricityProducedMax.Name] = OutputParameter( + Name="Maximum Net Electricity Generation", + UnitType=Units.POWER, + PreferredUnits=PowerUnit.MW, + CurrentUnits=PowerUnit.MW + ) + self.TotalkWhProduced = self.OutputParameterDict[self.TotalkWhProduced.Name] = OutputParameter( Name="Total Electricity Generation", UnitType=Units.ENERGY, @@ -589,11 +596,19 @@ def __init__(self, model: Model): PreferredUnits=PowerUnit.MW, CurrentUnits=PowerUnit.MW ) + self.HeatProducedMax = self.OutputParameterDict[self.HeatProducedMax.Name] = OutputParameter( + Name="Maximum Net Heat Production", + UnitType=Units.POWER, + PreferredUnits=PowerUnit.MW, + CurrentUnits=PowerUnit.MW + ) self.HeatkWhProduced = self.OutputParameterDict[self.HeatkWhProduced.Name] = OutputParameter( Name="Heat Produced in kWh", - UnitType=Units.POWER, - PreferredUnits=PowerUnit.KW, - CurrentUnits=PowerUnit.KW + # display_name='Average Annual Heat Production', + UnitType=Units.ENERGY, + CurrentUnits=EnergyUnit.KWH, + # PreferredUnits=EnergyUnit.GWH, + PreferredUnits=EnergyUnit.KWH ) self.Availability = self.OutputParameterDict[self.Availability.Name] = OutputParameter( Name="Geofluid Availability", @@ -649,6 +664,7 @@ def read_parameters(self, model:Model) -> None: end_use_option = EndUseOptions.from_input_string(ParameterReadIn.sValue) ParameterToModify.value = end_use_option if end_use_option == EndUseOptions.HEAT: + # TODO https://github.com/NatLabRockies/GEOPHIRES-X/issues/477?title=Validate+surface+application+for+direct-use+heat-only+end+use+(ORC/flash+plants+are+not+applicable) self.plant_type.value = PlantType.INDUSTRIAL elif ParameterToModify.Name == 'Power Plant Type': ParameterToModify.value = PlantType.from_input_string(ParameterReadIn.sValue) @@ -750,3 +766,10 @@ def _calculate_derived_outputs(self, model: Model) -> None: self.heat_to_power_conversion_efficiency.value = avg_efficiency self.enduse_option_output.value = self.enduse_option.value.value + + self.NetElectricityProducedMax.value = np.max(self.NetElectricityProduced.quantity()).to( + self.NetElectricityProducedMax.CurrentUnits).magnitude + + if model.surfaceplant.enduse_option.value.has_direct_use_heat_component or model.surfaceplant.plant_type.value in [ + PlantType.ABSORPTION_CHILLER, PlantType.HEAT_PUMP]: + self.HeatProducedMax.value = np.max(model.surfaceplant.HeatProduced.value) \ No newline at end of file diff --git a/src/geophires_x/SurfacePlantSUTRA.py b/src/geophires_x/SurfacePlantSUTRA.py index 441e2a6d3..38a872fdb 100644 --- a/src/geophires_x/SurfacePlantSUTRA.py +++ b/src/geophires_x/SurfacePlantSUTRA.py @@ -102,6 +102,7 @@ def __init__(self, model: Model): self.PumpingkWh = self.OutputParameterDict[self.PumpingkWh.Name] = OutputParameter( Name="Annual Pumping Electricity Required", + display_name='Annual Electricity Use for Pumping', UnitType=Units.ENERGYFREQUENCY, PreferredUnits=EnergyFrequencyUnit.KWhPERYEAR, CurrentUnits=EnergyFrequencyUnit.KWhPERYEAR diff --git a/src/geophires_x/WellBores.py b/src/geophires_x/WellBores.py index 43f4016b7..b7a9b4bdf 100644 --- a/src/geophires_x/WellBores.py +++ b/src/geophires_x/WellBores.py @@ -874,7 +874,34 @@ def __init__(self, model: Model): CurrentUnits=TemperatureUnit.CELSIUS, Required=True, ErrMessage="assume default injection temperature (70 deg.C)", - ToolTipText="Constant geofluid injection temperature at injection wellhead." + ToolTipText="Constant geofluid injection temperature at injection wellhead. " + "This is the temperature to which the geofluid is cooled before being reinjected into " + "the reservoir. It directly affects total heat extraction: " + "HeatExtracted = flow_rate * cp * (ProducedTemperature - InjectionTemperature). " + "For direct-use heat end-use options (including heat pump, absorption chiller, and district " + "heating), this parameter directly controls how much thermal energy is extracted from the " + "geofluid for the surface application. A lower injection temperature means more heat is " + "extracted. " + "For end-use options with a power plant (electricity, CHP), the model calculates a " + "reinjection temperature from power plant correlations representing the thermodynamic " + "optimum exhaust temperature. If the provided injection temperature exceeds the " + "model-calculated reinjection temperature, the provided value is ignored and the " + "model-calculated value is used instead (a warning will be logged). " + "For pure electricity end-use, the injection temperature does not affect electricity " + "production; it only affects heat extraction accounting and First Law Efficiency reporting. " + "Providing an injection temperature lower than the model-calculated reinjection temperature " + "represents additional thermal losses between the power plant and the injection wellhead " + "(e.g. surface piping losses). " + "For CHP topping cycle configurations, providing an injection temperature lower than the " + "model-calculated reinjection temperature is necessary to model direct-use heat extraction; " + "the difference between the reinjection temperature and the injection temperature determines " + "the heat available for the direct-use application. Because the direct-use application sits " + "downstream of the power plant, altering this parameter directly impacts heat production but " + "does not affect electricity generation. If not provided (or if the default " + "exceeds the model-calculated reinjection temperature), the resulting direct-use heat " + "production will be marginal." + # TODO re-assess tooltip text when FGEM is incorporated + # https://github.com/NatLabRockies/GEOPHIRES-X/issues/395?title=FGEM/flexible+geothermal+systems ) self.Phydrostatic = self.ParameterDict[self.Phydrostatic.Name] = floatParameter( "Reservoir Hydrostatic Pressure", diff --git a/src/geophires_x/__init__.py b/src/geophires_x/__init__.py index 22b49ef42..8576e6e6a 100644 --- a/src/geophires_x/__init__.py +++ b/src/geophires_x/__init__.py @@ -1 +1 @@ -__version__ = '3.12.1' +__version__ = '3.13.0' diff --git a/src/geophires_x_client/geophires_x_result.py b/src/geophires_x_client/geophires_x_result.py index 4cc616ed4..9568b52c6 100644 --- a/src/geophires_x_client/geophires_x_result.py +++ b/src/geophires_x_client/geophires_x_result.py @@ -45,6 +45,8 @@ class GeophiresXResult: 'Electricity breakeven price', 'Total CAPEX', 'Total CAPEX ($/kW)', + 'Electricity CAPEX ($/kWe)', + 'Heat CAPEX ($/kWth)', 'Average Direct-Use Heat Production', 'Direct-Use heat breakeven price', 'Direct-Use heat breakeven price (LCOH)', @@ -261,6 +263,8 @@ class GeophiresXResult: 'Stimulation costs', 'Stimulation costs (for redrilling)', 'Surface power plant costs', + 'of which Electrical Plant Cost', + 'of which Heat Plant Cost', 'of which Absorption Chiller Cost', 'of which Heat Pump Cost', 'of which Peaking Boiler Cost', diff --git a/src/geophires_x_schema_generator/geophires-request.json b/src/geophires_x_schema_generator/geophires-request.json index 5b1de87ed..431686349 100644 --- a/src/geophires_x_schema_generator/geophires-request.json +++ b/src/geophires_x_schema_generator/geophires-request.json @@ -773,7 +773,7 @@ "maximum": 393700 }, "Injection Temperature": { - "description": "Constant geofluid injection temperature at injection wellhead.", + "description": "Constant geofluid injection temperature at injection wellhead. This is the temperature to which the geofluid is cooled before being reinjected into the reservoir. It directly affects total heat extraction: HeatExtracted = flow_rate * cp * (ProducedTemperature - InjectionTemperature). For direct-use heat end-use options (including heat pump, absorption chiller, and district heating), this parameter directly controls how much thermal energy is extracted from the geofluid for the surface application. A lower injection temperature means more heat is extracted. For end-use options with a power plant (electricity, CHP), the model calculates a reinjection temperature from power plant correlations representing the thermodynamic optimum exhaust temperature. If the provided injection temperature exceeds the model-calculated reinjection temperature, the provided value is ignored and the model-calculated value is used instead (a warning will be logged). For pure electricity end-use, the injection temperature does not affect electricity production; it only affects heat extraction accounting and First Law Efficiency reporting. Providing an injection temperature lower than the model-calculated reinjection temperature represents additional thermal losses between the power plant and the injection wellhead (e.g. surface piping losses). For CHP topping cycle configurations, providing an injection temperature lower than the model-calculated reinjection temperature is necessary to model direct-use heat extraction; the difference between the reinjection temperature and the injection temperature determines the heat available for the direct-use application. Because the direct-use application sits downstream of the power plant, altering this parameter directly impacts heat production but does not affect electricity generation. If not provided (or if the default exceeds the model-calculated reinjection temperature), the resulting direct-use heat production will be marginal.", "type": "number", "units": "degC", "category": "Well Bores", @@ -2493,7 +2493,7 @@ "maximum": 1000.0 }, "AddOn Profit Gained": { - "description": "Annual profit gained. If using multiple add-ons: either (1) specify this value as an array or (2) use multiple parameters suffixed with a number e.g. 'AddOn Profit Gained 1', 'AddOn Profit Gained 2', etc.", + "description": "The annual gross revenue or cash inflow generated by the add-on. Note: While named 'Profit', this value is treated mathematically as top-line revenue in economic calculations. Do not subtract Add-On OPEX from this value, as the model accounts for Add-On OPEX separately. If using multiple add-ons: either (1) specify this value as an array or (2) use multiple parameters suffixed with a number e.g. 'AddOn Profit Gained 1', 'AddOn Profit Gained 2', etc.", "type": "array", "units": "MUSD/yr", "category": "Economics", diff --git a/src/geophires_x_schema_generator/geophires-result.json b/src/geophires_x_schema_generator/geophires-result.json index 06eeb8662..552ce18bf 100644 --- a/src/geophires_x_schema_generator/geophires-result.json +++ b/src/geophires_x_schema_generator/geophires-result.json @@ -32,6 +32,16 @@ "description": "The total capital expenditure (CAPEX) required to construct the plant, normalized per kilowatt of capacity. This metric is calculated based on the maximum net electricity generation of the facility. It reflects all direct and indirect costs, contingency, and applicable cost escalations included in the base Total CAPEX.", "units": "USD/kW" }, + "Electricity CAPEX ($/kWe)": { + "type": "number", + "description": "The portion of total capital expenditure (CAPEX) allocated specifically to electricity generation, normalized per kilowatt of net electrical capacity (kWe). In cogeneration (CHP) scenarios, this is calculated by multiplying the Total CAPEX by the electrical plant cost allocation ratio, divided by the maximum net electricity generation.", + "units": "USD/kW" + }, + "Heat CAPEX ($/kWth)": { + "type": "number", + "description": "The portion of total capital expenditure (CAPEX) allocated specifically to direct-use heat production, normalized per kilowatt of net thermal capacity (kWth). In cogeneration (CHP) scenarios, this is calculated by multiplying the Total CAPEX by the thermal plant cost allocation ratio (1 minus the electrical ratio), divided by the maximum net heat production.", + "units": "USD/kW" + }, "Average Direct-Use Heat Production": {}, "Direct-Use heat breakeven price": {}, "Direct-Use heat breakeven price (LCOH)": { @@ -152,7 +162,11 @@ "description": "The time at which cumulative cash flow reaches zero. For projects that never pay back, the calculated value will be \"N/A\". For SAM Economic Models, this is Simple Payback Period (SPB): the time at which cumulative non-discounted cash flow reaches zero, calculated using non-discounted after-tax net cash flow. See https://samrepo.nrelcloud.org/help/mtf_payback.html for important considerations regarding the limitations of this metric.", "units": "yr" }, - "CHP: Percent cost allocation for electrical plant": {}, + "CHP: Percent cost allocation for electrical plant": { + "type": "number", + "description": "CHP Electrical Plant Cost Allocation Ratio (cost electrical plant/total CAPEX)", + "units": "%" + }, "Estimated Jobs Created": { "type": "number", "description": "", @@ -428,6 +442,16 @@ "description": "Surface Plant cost. The built-in power plant cost correlations are based on the original correlations developed by Beckers (2016), indexed to 2017 using the IHS Markit North American Power Capital Costs Index (NAPCCI) excluding nuclear plants (IHS 2018). The ORC power plant cost data have been updated with data from the 2016 GETEM tool (DOE 2016) and the geothermal binary power plants study by Verkis (2014). Figure 4 in the Theoretical Basis shows the power plant capital cost expressed in $ kWe-1 as a function of plant size and initial production temperature for subcritical ORC and double-flash power plants. The default correlations in GEOPHIRES include 15% contingency plus 12% indirect costs. For the same plant size and production temperature, double-flash power plants are considered about 25% more expensive than single-flash power plants (Zeyghami 2010), and supercritical ORC plants are roughly 10% more than subcritical ORC plants (Astolfi et al. 2014). A wide range in power plant specific cost values is reported in academic and popular literature. The GEOPHIRES built-in surface plant cost correlations represent typical values. However, the user is recommended to provide their own power plant cost data if available for their case study. The ORC plant specific cost decreases only moderately at higher temperatures. The reasons are that when increasing the temperature, the ORC plant design also changes: (1) a different organic fluid is selected, (2) piping, pump, heat exchangers, and other equipment are designed to handle the higher temperature (and potentially also pressure), requiring thicker walls, potentially different materials, etc., and (3) additional components may be implemented, such as a heat recuperator, making the design and operation more complex. Unlike flash power plants, ORC plants are a small, niche market, typically case specific, and rely on relatively young technology, which has not been subject yet to decades of technological advancement. The cost for direct-use heat applications is highly dependent on the type of application. A generic cost of $250 kWth-1 is assumed plus 15% contingency plus 12% indirect costs. However, users are encouraged to provide their own cost figures for their specific application. Beckers and Young (2017) collected several cost figures to estimate the surface equipment cost for geothermal district-heating systems.", "units": "MUSD" }, + "of which Electrical Plant Cost": { + "type": "number", + "description": "Electrical Plant cost", + "units": "MUSD" + }, + "of which Heat Plant Cost": { + "type": "number", + "description": "Heat Plant cost", + "units": "MUSD" + }, "of which Absorption Chiller Cost": {}, "of which Heat Pump Cost": {}, "of which Peaking Boiler Cost": {}, @@ -446,7 +470,11 @@ "description": "Field gathering system cost. The built-in cost correlation for estimating the field gathering system cost includes the cost for surface piping from each well to the plant and pumps for production and injection wells. The length of the surface piping is assumed 750 m per well at a cost of $500 per meter. The pumping cost for each pump in the production wells (line-shaft pumps) and a single pump for the injection wells is calculated with the same correlation as GETEM. Contingency (default: 15%). and indirect costs (default: 12%) are added. The built-in cost correlation does not include the cost of pipelines to an off-site heat user or a district-heating system. These costs are estimated at $750 per meter pipeline length and can be manually added by the user to the pipeline distribution costs.", "units": "MUSD" }, - "Total surface equipment costs": {}, + "Total surface equipment costs": { + "type": "number", + "description": "Surface Plant cost plus Field gathering system cost plus Transmission pipeline costs.", + "units": "MUSD" + }, "Investment Tax Credit": { "type": "number", "description": "Investment Tax Credit Value. Represents the total undiscounted ITC sum. For SAM Economic Models, this accounts for the standard Year 1 Federal ITC as well as any applicable State ITCs or multi-year credit schedules.", @@ -517,7 +545,11 @@ "description": "O&M Make-up Water costs. Default correlation: Assumes $3.50/1,000 gallons of water. Provide Water Cost Adjustment Factor to multiply the default correlation.", "units": "MUSD/yr" }, - "Average Reservoir Pumping Cost": {}, + "Average Reservoir Pumping Cost": { + "type": "number", + "description": "Average Annual Pumping Costs", + "units": "MUSD/yr" + }, "Absorption Chiller O&M Cost": {}, "Average Heat Pump Electricity Cost": {}, "Annual District Heating O&M Cost": { @@ -565,13 +597,21 @@ "Average Total Electricity Generation": {}, "Minimum Total Electricity Generation": {}, "Initial Total Electricity Generation": {}, - "Maximum Net Electricity Generation": {}, + "Maximum Net Electricity Generation": { + "type": "number", + "description": "", + "units": "MW" + }, "Average Net Electricity Generation": {}, "Minimum Net Electricity Generation": {}, "Initial Net Electricity Generation": {}, "Average Annual Total Electricity Generation": {}, "Average Annual Net Electricity Generation": {}, - "Maximum Net Heat Production": {}, + "Maximum Net Heat Production": { + "type": "number", + "description": "", + "units": "MW" + }, "Average Net Heat Production": {}, "Minimum Net Heat Production": {}, "Initial Net Heat Production": {}, diff --git a/tests/examples/Fervo_Project_Cape-4.out b/tests/examples/Fervo_Project_Cape-4.out index 886d18482..ca6f68d4e 100644 --- a/tests/examples/Fervo_Project_Cape-4.out +++ b/tests/examples/Fervo_Project_Cape-4.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.11.18 - Simulation Date: 2026-02-27 - Simulation Time: 13:15 - Calculation Time: 1.787 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-01 + Simulation Time: 10:35 + Calculation Time: 1.765 sec ***SUMMARY OF RESULTS*** @@ -98,13 +98,13 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 30.00 MUSD Drilling and completion costs: 467.75 MUSD Drilling and completion costs per well: 3.96 MUSD Stimulation costs: 542.80 MUSD Surface power plant costs: 1504.05 MUSD Field gathering system costs: 56.44 MUSD Total surface equipment costs: 1560.49 MUSD - Exploration costs: 30.00 MUSD Overnight Capital Cost: 2601.04 MUSD Inflation costs during construction: 59.82 MUSD Total CAPEX: 2660.87 MUSD @@ -120,7 +120,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) Maximum Total Electricity Generation: 614.60 MW Average Total Electricity Generation: 610.21 MW @@ -334,6 +333,8 @@ PPA revenue ($) 0 398,360,985 4 Electricity to grid (kWh) 0 4,193,273,525 4,219,573,970 4,227,516,388 4,232,001,035 4,233,245,126 4,225,570,913 4,194,325,606 4,114,710,394 4,101,737,992 4,212,547,398 4,224,519,385 4,230,441,060 4,233,667,186 4,231,750,368 4,214,888,525 4,163,207,043 4,055,985,743 4,194,671,056 4,220,853,770 4,228,811,003 4,233,321,393 4,234,588,146 4,226,928,684 4,195,686,141 4,116,056,232 4,103,061,353 4,213,834,812 4,225,738,401 4,231,569,184 4,234,649,495 Present value of annual costs ($) 2,298,728,919 + +Present value of annual energy costs ($) 2,298,728,919 Present value of annual energy nominal (kWh) 28,355,365,264 LCOE Levelized cost of energy nominal (cents/kWh) 8.11 diff --git a/tests/examples/Fervo_Project_Cape-5.out b/tests/examples/Fervo_Project_Cape-5.out index 8c48f3ae4..c1183346b 100644 --- a/tests/examples/Fervo_Project_Cape-5.out +++ b/tests/examples/Fervo_Project_Cape-5.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.11.18 - Simulation Date: 2026-02-27 - Simulation Time: 13:15 - Calculation Time: 1.785 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-01 + Simulation Time: 10:35 + Calculation Time: 1.788 sec ***SUMMARY OF RESULTS*** @@ -108,13 +108,13 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 30.00 MUSD Drilling and completion costs: 436.98 MUSD Drilling and completion costs per well: 4.65 MUSD Stimulation costs: 454.02 MUSD Surface power plant costs: 1467.78 MUSD Field gathering system costs: 48.33 MUSD Total surface equipment costs: 1516.11 MUSD - Exploration costs: 30.00 MUSD Overnight Capital Cost: 2437.12 MUSD Inflation costs during construction: 285.92 MUSD Interest during construction: 142.66 MUSD @@ -132,7 +132,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) Maximum Total Electricity Generation: 599.78 MW Average Total Electricity Generation: 597.78 MW @@ -347,6 +346,8 @@ PPA revenue ($) 0 0 0 Electricity to grid (kWh) 0 0 0 0 0 3,996,903,407 4,021,221,159 4,028,632,582 4,033,015,549 4,036,041,845 4,037,133,714 4,024,512,547 3,972,502,820 4,010,975,034 4,024,452,750 4,030,583,392 4,034,549,165 4,037,310,847 4,036,490,799 4,010,246,587 3,977,918,195 4,017,972,710 4,027,488,405 4,032,555,784 4,035,945,414 4,038,021,639 4,033,058,931 3,985,558,545 3,997,861,917 4,022,072,057 4,029,450,128 4,033,813,085 4,036,825,175 4,037,905,857 4,026,950,141 Present value of annual costs ($) 1,292,771,969 + +Present value of annual energy costs ($) 1,292,771,969 Present value of annual energy nominal (kWh) 15,057,196,989 LCOE Levelized cost of energy nominal (cents/kWh) 8.59 diff --git a/tests/examples/Fervo_Project_Cape-6.out b/tests/examples/Fervo_Project_Cape-6.out index 05f33a623..93f566a2e 100644 --- a/tests/examples/Fervo_Project_Cape-6.out +++ b/tests/examples/Fervo_Project_Cape-6.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.11.18 - Simulation Date: 2026-02-27 - Simulation Time: 13:19 - Calculation Time: 1.826 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-01 + Simulation Time: 10:35 + Calculation Time: 1.793 sec ***SUMMARY OF RESULTS*** @@ -108,13 +108,13 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 30.00 MUSD Drilling and completion costs: 92.98 MUSD Drilling and completion costs per well: 4.65 MUSD Stimulation costs: 96.60 MUSD Surface power plant costs: 293.50 MUSD Field gathering system costs: 9.87 MUSD Total surface equipment costs: 303.37 MUSD - Exploration costs: 30.00 MUSD Overnight Capital Cost: 522.94 MUSD Inflation costs during construction: 33.49 MUSD Interest during construction: 21.28 MUSD @@ -132,7 +132,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) Maximum Total Electricity Generation: 119.93 MW Average Total Electricity Generation: 119.50 MW @@ -347,6 +346,8 @@ PPA revenue ($) 0 0 0 Electricity to grid (kWh) 0 0 0 808,243,387 813,446,234 815,032,355 815,970,503 816,625,987 817,071,580 816,608,918 810,320,754 805,158,022 812,855,559 814,772,137 815,842,108 816,581,346 817,117,371 817,091,391 813,246,145 803,899,806 812,179,867 814,558,437 815,735,966 816,506,413 817,062,723 817,263,543 815,047,042 804,189,155 810,933,090 814,142,129 815,491,723 816,336,340 816,919,110 Present value of annual costs ($) 359,956,613 + +Present value of annual energy costs ($) 359,956,613 Present value of annual energy nominal (kWh) 4,031,275,592 LCOE Levelized cost of energy nominal (cents/kWh) 8.93 diff --git a/tests/examples/S-DAC-GT.out b/tests/examples/S-DAC-GT.out index e53854f6b..75170830c 100644 --- a/tests/examples/S-DAC-GT.out +++ b/tests/examples/S-DAC-GT.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.9.7 - Simulation Date: 2025-05-15 - Simulation Time: 10:13 - Calculation Time: 0.099 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-07 + Simulation Time: 10:46 + Calculation Time: 0.135 sec ***SUMMARY OF RESULTS*** @@ -26,7 +26,7 @@ Simulation Metadata ***ECONOMIC PARAMETERS*** Economic Model = BICYCLE - Accrued financing during construction: 0.00 % + Accrued financing during construction: 0.00 % Project lifetime: 30 yr Capacity factor: 90.0 % Project NPV: -82.17 MUSD @@ -66,7 +66,7 @@ Simulation Metadata m/A Drawdown Parameter: 0.00002 1/year Bottom-hole temperature: 232.00 degC Reservoir volume calculated with fracture separation and number of fractures as input - Number of fractures: 12.00 + Number of fractures: 12 Fracture separation: 80.00 meter Reservoir volume: 176000000 m**3 Reservoir hydrostatic pressure: 29019.48 kPa @@ -90,13 +90,15 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 4.42 MUSD Drilling and completion costs: 25.55 MUSD Drilling and completion costs per well: 4.26 MUSD Stimulation costs: 4.53 MUSD Surface power plant costs: 64.90 MUSD + of which Electrical Plant Cost: 59.87 MUSD + of which Heat Plant Cost: 5.03 MUSD Field gathering system costs: 3.16 MUSD Total surface equipment costs: 68.06 MUSD - Exploration costs: 4.42 MUSD Total capital costs: 102.56 MUSD @@ -109,7 +111,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.23 MW/(kg/s) Maximum Total Electricity Generation: 21.16 MW Average Total Electricity Generation: 19.80 MW diff --git a/tests/examples/example13.out b/tests/examples/example13.out index 7b8813081..e9cbd8cfe 100644 --- a/tests/examples/example13.out +++ b/tests/examples/example13.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.9.47 - Simulation Date: 2025-07-31 - Simulation Time: 08:44 - Calculation Time: 0.036 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-07 + Simulation Time: 10:46 + Calculation Time: 0.049 sec ***SUMMARY OF RESULTS*** @@ -94,13 +94,15 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 0.00 MUSD Drilling and completion costs: 26.49 MUSD Drilling and completion costs per well: 6.62 MUSD Stimulation costs: 1.00 MUSD Surface power plant costs: 19.89 MUSD + of which Electrical Plant Cost: 11.99 MUSD + of which Heat Plant Cost: 7.90 MUSD Field gathering system costs: 2.32 MUSD Total surface equipment costs: 22.21 MUSD - Exploration costs: 0.00 MUSD Total capital costs: 49.70 MUSD @@ -114,7 +116,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.11 MW/(kg/s) Maximum Total Electricity Generation: 3.40 MW Average Total Electricity Generation: 3.40 MW diff --git a/tests/examples/example14_data-center.out b/tests/examples/example14_data-center.out index 23c5486de..0b9466b27 100644 --- a/tests/examples/example14_data-center.out +++ b/tests/examples/example14_data-center.out @@ -4,18 +4,21 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.11.26 - Simulation Date: 2026-03-21 - Simulation Time: 09:40 - Calculation Time: 1.812 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-07 + Simulation Time: 11:05 + Calculation Time: 1.846 sec ***SUMMARY OF RESULTS*** - End-Use Option: Electricity - Average Net Electricity Production: 1016.98 MW - Electricity breakeven price: 9.44 cents/kWh - Total CAPEX: 8214.83 MUSD - Total CAPEX ($/kW): 7936 USD/kW + End-Use Option: Cogeneration Topping Cycle, Heat sales considered as extra income + Average Net Electricity Production: 1017.22 MW + Average Direct-Use Heat Production: 300.41 MW + Electricity breakeven price: 9.81 cents/kWh + Direct-Use heat breakeven price (LCOH): 3.56 USD/MMBTU + Total CAPEX: 9472.20 MUSD + Electricity CAPEX ($/kWe): 8829 USD/kW + Heat CAPEX ($/kWth): 1105 USD/kW Number of production wells: 114 Number of injection wells: 114 Flowrate per production well: 100.0 kg/sec @@ -29,15 +32,15 @@ Simulation Metadata Real Discount Rate: 12.00 % Nominal Discount Rate: 15.02 % WACC: 8.38 % - Investment Tax Credit: 3285.93 MUSD + Investment Tax Credit: 3788.88 MUSD Project lifetime: 30 yr Capacity factor: 90.0 % - Project NPV: 509.91 MUSD - After-tax IRR: 22.32 % - Project VIR=PI=PIR: 1.25 - Project MOIC: 3.06 - Project Payback Period: 5.92 yr - Estimated Jobs Created: 2377 + Project NPV: 288.48 MUSD + After-tax IRR: 18.93 % + Project VIR=PI=PIR: 1.12 + Project MOIC: 2.38 + Project Payback Period: 5.94 yr + CHP: Percent cost allocation for electrical plant: 96.48 % ***ENGINEERING PARAMETERS*** @@ -46,9 +49,9 @@ Simulation Metadata Well depth: 3.7 kilometer Water loss rate: 15.0 % Pump efficiency: 80.0 % - Injection temperature: 56.6 degC + Injection temperature: 49.7 degC Production Wellbore heat transmission calculated with Ramey's model - Average production well temperature drop: 1.4 degC + Average production well temperature drop: 1.3 degC Flowrate per production well: 100.0 kg/sec Injection well casing ID: 8.500 in Production well casing ID: 8.500 in @@ -91,11 +94,11 @@ Simulation Metadata Average Production Temperature: 200.0 degC Minimum Production Temperature: 190.6 degC Initial Production Temperature: 199.2 degC - Average Reservoir Heat Extraction: 6808.20 MW + Average Reservoir Heat Extraction: 7126.41 MW Production Wellbore Heat Transmission Model = Ramey Model - Average Production Well Temperature Drop: 1.4 degC - Average Injection Well Pump Pressure Drop: -1182.8 kPa - Average Production Well Pump Pressure Drop: 6159.0 kPa + Average Production Well Temperature Drop: 1.3 degC + Average Injection Well Pump Pressure Drop: -1301.9 kPa + Average Production Well Pump Pressure Drop: 6157.5 kPa ***CAPITAL COSTS (M$)*** @@ -104,119 +107,125 @@ Simulation Metadata Drilling and completion costs: 1278.62 MUSD Drilling and completion costs per well: 5.61 MUSD Stimulation costs: 1514.98 MUSD - Surface power plant costs: 3130.10 MUSD - Field gathering system costs: 68.89 MUSD + Surface power plant costs: 4225.49 MUSD + of which Electrical Plant Cost: 4076.84 MUSD + of which Heat Plant Cost: 148.65 MUSD + Field gathering system costs: 68.88 MUSD Transmission pipeline cost: 2.00 MUSD - Total surface equipment costs: 3198.99 MUSD + Total surface equipment costs: 4296.38 MUSD One-time Flat License Fees Etc: 100.00 MUSD Total Add-on CAPEX: 562.00 MUSD - Overnight Capital Cost: 7156.59 MUSD - Inflation costs during construction: 870.54 MUSD - Interest during construction: 187.70 MUSD - Total CAPEX: 8214.83 MUSD + Overnight Capital Cost: 8251.98 MUSD + Inflation costs during construction: 1003.79 MUSD + Interest during construction: 216.43 MUSD + Total CAPEX: 9472.20 MUSD ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** - Wellfield maintenance costs: 14.53 MUSD/yr - Power plant maintenance costs: 50.12 MUSD/yr + Wellfield maintenance costs: 14.57 MUSD/yr + Power plant maintenance costs: 66.66 MUSD/yr Water costs: 44.89 MUSD/yr Redrilling costs: 186.24 MUSD/yr Total Add-on OPEX: 0.00 MUSD/yr - Total operating and maintenance costs: 295.78 MUSD/yr + Total operating and maintenance costs: 312.37 MUSD/yr ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) - Maximum Total Electricity Generation: 1133.37 MW - Average Total Electricity Generation: 1116.10 MW - Minimum Total Electricity Generation: 988.47 MW - Initial Total Electricity Generation: 1104.09 MW - Maximum Net Electricity Generation: 1035.09 MW - Average Net Electricity Generation: 1016.98 MW - Minimum Net Electricity Generation: 884.51 MW - Initial Net Electricity Generation: 1005.03 MW - Average Annual Total Electricity Generation: 8799.65 GWh - Average Annual Net Electricity Generation: 8018.16 GWh + Maximum Total Electricity Generation: 1133.31 MW + Average Total Electricity Generation: 1116.33 MW + Minimum Total Electricity Generation: 989.36 MW + Initial Total Electricity Generation: 1104.01 MW + Maximum Net Electricity Generation: 1035.05 MW + Average Net Electricity Generation: 1017.22 MW + Minimum Net Electricity Generation: 885.43 MW + Initial Net Electricity Generation: 1004.95 MW + Average Annual Total Electricity Generation: 8801.45 GWh + Average Annual Net Electricity Generation: 8020.12 GWh Initial pumping power/net installed power: 9.86 % - Average Pumping Power: 99.12 MW - Heat to Power Conversion Efficiency: 14.93 % + Maximum Net Heat Production: 301.47 MW + Average Net Heat Production: 300.41 MW + Minimum Net Heat Production: 292.38 MW + Initial Net Heat Production: 299.65 MW + Average Annual Heat Production: 2368.45 GWh + Average Pumping Power: 99.10 MW + Heat to Power Conversion Efficiency: 14.97 % ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * ************************************************************ - YEAR THERMAL GEOFLUID PUMP NET FIRST LAW - DRAWDOWN TEMPERATURE POWER POWER EFFICIENCY - (degC) (MW) (MW) (%) - 1 1.0000 199.16 99.0596 1005.0269 14.8520 - 2 1.0077 200.68 98.8776 1026.1299 15.0031 - 3 1.0091 200.97 98.8436 1030.0677 15.0310 - 4 1.0098 201.12 98.8260 1032.1180 15.0455 - 5 1.0103 201.21 98.8146 1033.4653 15.0550 - 6 1.0107 201.28 98.8101 1034.3488 15.0613 - 7 1.0107 201.29 98.8274 1034.4343 15.0617 - 8 1.0100 201.14 98.9135 1032.4083 15.0469 - 9 1.0075 200.66 99.1659 1025.4506 14.9961 - 10 1.0017 199.50 99.7379 1009.0647 14.8757 - 11 0.9905 197.27 100.8170 977.6311 14.6406 - 12 0.9719 193.55 102.5765 925.7343 14.2398 - 13 1.0049 200.13 98.7254 1018.6747 14.9517 - 14 1.0083 200.81 98.6957 1028.0035 15.0177 - 15 1.0094 201.03 98.6598 1031.0442 15.0393 - 16 1.0100 201.15 98.6190 1032.8258 15.0520 - 17 1.0105 201.24 98.5758 1034.0499 15.0609 - 18 1.0107 201.29 98.5385 1034.7786 15.0663 - 19 1.0106 201.26 98.5340 1034.4086 15.0638 - 20 1.0094 201.03 98.6272 1031.1718 15.0404 - 21 1.0061 200.36 98.9381 1021.6744 14.9712 - 22 0.9987 198.90 99.6384 1000.9400 14.8184 - 23 0.9852 196.22 100.9204 963.2345 14.5340 - 24 0.9637 191.92 102.9412 903.5952 14.0668 - 25 1.0067 200.50 98.3062 1024.1225 14.9933 - 26 1.0087 200.90 98.2924 1029.6478 15.0323 - 27 1.0096 201.07 98.2821 1032.0887 15.0494 - 28 1.0102 201.19 98.2746 1033.6127 15.0602 - 29 1.0106 201.26 98.2712 1034.6508 15.0674 - 30 1.0107 201.29 98.2818 1035.0844 15.0704 + YEAR THERMAL GEOFLUID PUMP NET NET FIRST LAW + DRAWDOWN TEMPERATURE POWER POWER HEAT EFFICIENCY + (deg C) (MW) (MW) (MW) (%) + 0 1.0000 199.15 99.0603 1004.9467 299.6478 14.8856 + 1 1.0077 200.68 98.8781 1026.0717 300.9533 15.0401 + 2 1.0091 200.96 98.8441 1030.0136 301.1962 15.0687 + 3 1.0099 201.11 98.8264 1032.0660 301.3225 15.0835 + 4 1.0103 201.21 98.8151 1033.4146 301.4056 15.0933 + 5 1.0107 201.27 98.8106 1034.2961 301.4600 15.0996 + 6 1.0107 201.28 98.8286 1034.3624 301.4653 15.1000 + 7 1.0100 201.13 98.9176 1032.2531 301.3398 15.0842 + 8 1.0074 200.63 99.1787 1025.0442 300.9080 15.0305 + 9 1.0014 199.43 99.7709 1008.0630 299.8868 14.9030 + 10 0.9898 197.12 100.8895 975.4586 297.9137 14.6537 + 11 0.9704 193.25 102.7147 921.5870 294.6166 14.2281 + 12 1.0055 200.25 98.7238 1020.3260 300.5861 14.9999 + 13 1.0084 200.83 98.6930 1028.2937 301.0799 15.0575 + 14 1.0095 201.04 98.6556 1031.1728 301.2565 15.0784 + 15 1.0101 201.16 98.6131 1032.8966 301.3609 15.0911 + 16 1.0105 201.24 98.5682 1034.0862 301.4319 15.0999 + 17 1.0107 201.29 98.5304 1034.7545 301.4711 15.1050 + 18 1.0105 201.25 98.5300 1034.1980 301.4365 15.1010 + 19 1.0092 200.98 98.6385 1030.4588 301.2110 15.0734 + 20 1.0054 200.24 98.9854 1019.8660 300.5738 14.9946 + 21 0.9974 198.63 99.7528 997.1333 299.2025 14.8231 + 22 0.9828 195.72 101.1403 956.2856 296.7204 14.5073 + 23 0.9596 191.10 103.3050 892.3046 292.7780 13.9923 + 24 1.0073 200.60 98.2855 1025.5331 300.8829 15.0407 + 25 1.0089 200.93 98.2711 1030.1273 301.1676 15.0738 + 26 1.0098 201.09 98.2602 1032.3555 301.3054 15.0898 + 27 1.0103 201.20 98.2525 1033.7867 301.3938 15.1001 + 28 1.0106 201.27 98.2498 1034.7477 301.4532 15.1070 + 29 1.0107 201.29 98.2653 1035.0061 301.4703 15.1088 ******************************************************************* * ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * ******************************************************************* - YEAR ELECTRICITY HEAT RESERVOIR PERCENTAGE OF - PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED - (GWh/year) (GWh/year) (10^15 J) (%) - 1 8035.3 53734.4 3777.18 4.87 - 2 8107.7 53982.8 3582.85 9.77 - 3 8129.8 54058.5 3388.23 14.67 - 4 8142.9 54103.3 3193.46 19.57 - 5 8151.7 54133.4 2998.58 24.48 - 6 8155.9 54148.3 2803.65 29.39 - 7 8149.6 54127.7 2608.79 34.30 - 8 8116.6 54018.0 2414.32 39.20 - 9 8028.0 53722.2 2220.92 44.07 - 10 7843.3 53102.6 2029.76 48.88 - 11 7517.9 52002.0 1842.55 53.60 - 12 7445.1 51735.3 1656.30 58.29 - 13 8078.0 53876.3 1462.35 63.17 - 14 8118.1 54013.9 1267.90 68.07 - 15 8136.3 54075.6 1073.22 72.97 - 16 8147.9 54114.7 878.41 77.88 - 17 8155.7 54140.6 683.51 82.79 - 18 8157.9 54147.2 488.58 87.70 - 19 8145.3 54104.8 293.80 92.60 - 20 8097.9 53946.1 99.59 97.49 - 21 7982.3 53559.3 -93.22 102.35 - 22 7755.7 52796.9 -283.29 107.13 - 23 7374.5 51502.6 -468.70 111.80 - 24 7729.1 52681.1 -658.35 116.58 - 25 8099.9 53940.8 -852.54 121.47 - 26 8128.3 54038.4 -1047.08 126.37 - 27 8143.4 54090.4 -1241.80 131.27 - 28 8153.4 54124.7 -1436.65 136.18 - 29 8159.5 54145.8 -1631.58 141.09 - 30 8158.3 54142.5 -1826.49 146.00 + YEAR HEAT ELECTRICITY HEAT RESERVOIR PERCENTAGE OF + PROVIDED PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED + (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%) + 1 2369.3 8034.8 56234.90 3952.76 4.87 + 2 2373.8 8107.2 56483.32 3749.42 9.77 + 3 2375.2 8129.4 56559.06 3545.81 14.67 + 4 2376.0 8142.4 56603.80 3342.04 19.57 + 5 2376.5 8151.2 56633.92 3138.15 24.48 + 6 2376.8 8155.5 56648.61 2934.22 29.38 + 7 2376.4 8148.8 56626.75 2730.36 34.29 + 8 2374.3 8114.5 56513.07 2526.92 39.19 + 9 2368.8 8022.7 56206.90 2324.57 44.06 + 10 2357.3 7831.2 55565.04 2124.54 48.87 + 11 2336.7 7493.6 54423.48 1928.61 53.59 + 12 2337.5 7512.8 54467.54 1732.53 58.30 + 13 2372.2 8083.2 56396.37 1529.50 63.19 + 14 2374.5 8119.6 56521.01 1326.03 68.09 + 15 2375.5 8137.0 56580.01 1122.34 72.99 + 16 2376.2 8148.3 56617.84 918.51 77.89 + 17 2376.7 8155.8 56642.53 714.60 82.80 + 18 2376.7 8157.1 56646.17 510.67 87.71 + 19 2375.8 8141.9 56595.23 306.93 92.61 + 20 2372.6 8088.4 56416.29 103.83 97.50 + 21 2364.9 7960.9 55989.55 -97.73 102.35 + 22 2350.0 7714.1 55159.43 -296.30 107.13 + 23 2324.8 7303.4 53763.56 -489.85 111.79 + 24 2360.6 7897.0 55751.27 -690.56 116.62 + 25 2373.5 8106.3 56464.12 -893.83 121.51 + 26 2375.0 8131.1 56549.43 -1097.41 126.41 + 27 2375.9 8145.1 56597.54 -1301.16 131.31 + 28 2376.4 8154.5 56629.76 -1505.02 136.22 + 29 2376.8 8159.7 56647.79 -1708.96 141.13 + 30 2376.6 8156.2 56636.89 -1912.85 146.03 *************************** * SAM CASH FLOW PROFILE * @@ -225,69 +234,78 @@ Simulation Metadata Year -4 Year -3 Year -2 Year -1 Year 0 Year 1 Year 2 Year 3 Year 4 Year 5 Year 6 Year 7 Year 8 Year 9 Year 10 Year 11 Year 12 Year 13 Year 14 Year 15 Year 16 Year 17 Year 18 Year 19 Year 20 Year 21 Year 22 Year 23 Year 24 Year 25 Year 26 Year 27 Year 28 Year 29 Year 30 CONSTRUCTION Capital expenditure schedule [construction] (%) 2.68 2.68 2.68 46.0 46.0 -Overnight capital expenditure [construction] ($) -191,835,041 -191,835,041 -191,835,041 -3,290,543,592 -3,290,543,592 +Overnight capital expenditure [construction] ($) -221,197,430 -221,197,430 -221,197,430 -3,794,196,210 -3,794,196,210 plus: -Inflation cost [construction] ($) -5,179,546 -10,498,940 -15,961,957 -370,032,365 -468,867,916 +Inflation cost [construction] ($) -5,972,331 -12,105,914 -18,405,104 -426,669,746 -540,633,127 plus: Royalty supplemental payments [construction] ($) 0 0 0 0 0 equals: -Nominal capital expenditure [construction] ($) -197,014,587 -202,333,981 -207,796,998 -3,660,575,958 -3,759,411,508 +Nominal capital expenditure [construction] ($) -227,169,760 -233,303,344 -239,602,534 -4,220,865,956 -4,334,829,337 -Issuance of equity [construction] ($) 78,805,835 80,933,592 83,118,799 1,464,230,383 1,503,764,603 -Issuance of debt [construction] ($) 118,208,752 121,400,388 124,678,199 2,196,345,575 2,255,646,905 -Debt balance [construction] ($) 118,208,752 246,228,831 384,695,844 2,602,584,386 5,003,976,017 -Debt interest payment [construction] ($) 0 6,619,690 13,788,815 21,542,967 145,744,726 +Issuance of equity [construction] ($) 90,867,904 93,321,338 95,841,014 1,688,346,382 1,733,931,735 +Issuance of debt [construction] ($) 136,301,856 139,982,006 143,761,520 2,532,519,574 2,600,897,602 +Debt balance [construction] ($) 136,301,856 283,916,766 443,577,626 3,000,937,546 5,769,887,651 +Debt interest payment [construction] ($) 0 7,632,904 15,899,339 24,840,347 168,052,503 -Installed cost [construction] ($) -197,014,587 -208,953,671 -221,585,813 -3,682,118,925 -3,905,156,234 -After-tax net cash flow [construction] ($) -78,805,835 -80,933,592 -83,118,799 -1,464,230,383 -1,503,764,603 +Installed cost [construction] ($) -227,169,760 -240,936,248 -255,501,873 -4,245,706,303 -4,502,881,839 +After-tax net cash flow [construction] ($) -90,867,904 -93,321,338 -95,841,014 -1,688,346,382 -1,733,931,735 ENERGY -Electricity to grid (kWh) 0.0 8,035,707,655 8,108,092,907 8,130,203,812 8,143,267,897 8,152,067,897 8,156,358,121 8,150,003,674 8,116,991,743 8,028,382,759 7,843,666,580 7,518,270,834 7,445,442,088 8,078,449,130 8,118,499,225 8,136,677,558 8,148,326,058 8,156,155,157 8,158,273,437 8,145,703,332 8,098,282,159 7,982,744,033 7,756,064,902 7,374,923,287 7,729,462,517 8,100,349,077 8,128,679,747 8,143,798,107 8,153,799,727 8,159,882,531 8,158,712,200 +Electricity to grid (kWh) 0.0 8,035,190,178 8,107,650,926 8,129,785,032 8,142,862,465 8,151,663,345 8,155,886,478 8,149,174,071 8,114,934,966 8,023,126,108 7,831,607,082 7,493,941,085 7,513,183,922 8,083,660,983 8,120,019,343 8,137,432,090 8,148,744,640 8,156,242,051 8,157,478,508 8,142,348,272 8,088,829,634 7,961,289,596 7,714,456,443 7,303,764,365 7,897,452,458 8,106,669,902 8,131,481,141 8,145,497,899 8,154,883,749 8,160,075,434 8,156,625,748 Electricity from grid (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -Electricity to grid net (kWh) 0.0 8,035,707,655 8,108,092,907 8,130,203,812 8,143,267,897 8,152,067,897 8,156,358,121 8,150,003,674 8,116,991,743 8,028,382,759 7,843,666,580 7,518,270,834 7,445,442,088 8,078,449,130 8,118,499,225 8,136,677,558 8,148,326,058 8,156,155,157 8,158,273,437 8,145,703,332 8,098,282,159 7,982,744,033 7,756,064,902 7,374,923,287 7,729,462,517 8,100,349,077 8,128,679,747 8,143,798,107 8,153,799,727 8,159,882,531 8,158,712,200 +Electricity to grid net (kWh) 0.0 8,035,190,178 8,107,650,926 8,129,785,032 8,142,862,465 8,151,663,345 8,155,886,478 8,149,174,071 8,114,934,966 8,023,126,108 7,831,607,082 7,493,941,085 7,513,183,922 8,083,660,983 8,120,019,343 8,137,432,090 8,148,744,640 8,156,242,051 8,157,478,508 8,142,348,272 8,088,829,634 7,961,289,596 7,714,456,443 7,303,764,365 7,897,452,458 8,106,669,902 8,131,481,141 8,145,497,899 8,154,883,749 8,160,075,434 8,156,625,748 + +Heat provided (kWh) 0 2,369,334,002 2,373,805,535 2,375,168,952 2,375,974,120 2,376,516,393 2,376,780,703 2,376,387,308 2,374,341,027 2,368,830,039 2,357,276,431 2,336,728,519 2,337,521,459 2,372,240,406 2,374,484,034 2,375,546,030 2,376,226,852 2,376,671,375 2,376,736,880 2,375,819,978 2,372,599,078 2,364,917,622 2,349,975,622 2,324,849,961 2,360,628,714 2,373,459,934 2,374,995,563 2,375,861,535 2,376,441,500 2,376,765,933 2,376,569,801 REVENUE PPA price (cents/kWh) 0.0 9.50 9.50 9.56 9.61 9.67 9.73 9.79 9.84 9.90 9.96 10.01 10.07 10.13 10.18 10.24 10.30 10.36 10.41 10.47 10.53 10.58 10.64 10.70 10.75 10.81 10.87 10.93 10.98 11.04 11.10 -PPA revenue ($) 0 763,392,227 770,268,826 777,003,578 782,893,776 788,386,486 793,450,518 797,477,860 798,874,327 794,729,609 780,915,445 752,804,459 749,756,018 818,104,543 826,787,961 833,277,149 839,114,617 844,569,867 849,439,430 852,773,682 852,425,180 844,813,801 825,245,306 788,895,544 831,226,399 875,728,739 883,424,915 889,709,943 895,450,286 900,769,433 905,290,706 +PPA revenue ($) 0 763,343,067 770,226,838 776,963,556 782,854,797 788,347,362 793,404,637 797,396,683 798,671,899 794,209,253 779,714,801 750,368,321 756,577,621 818,632,348 826,942,770 833,354,420 839,157,723 844,578,864 849,356,662 852,422,441 851,430,207 842,543,278 820,818,166 781,283,674 849,292,037 876,412,083 883,729,370 889,895,645 895,569,333 900,790,727 905,059,193 Curtailment payment revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -Capacity payment revenue ($) 0 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 107,000,000 -Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4,107,414,615 -Total revenue ($) 0 870,392,227 877,268,826 884,003,578 889,893,776 895,386,486 900,450,518 904,477,860 905,874,327 901,729,609 887,915,445 859,804,459 856,756,018 925,104,543 933,787,961 940,277,149 946,114,617 951,569,867 956,439,430 959,773,682 959,425,180 951,813,801 932,245,306 895,895,544 938,226,399 982,728,739 990,424,915 996,709,943 1,002,450,286 1,007,769,433 5,119,705,320 -Property tax net assessed value ($) 0 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 8,214,829,229 +Add-On revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +plus: +Heat price ($/kWh) 0.0 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 +Heat revenue ($) 0 106,620,030 106,821,249 106,882,603 106,918,835 106,943,238 106,955,132 106,937,429 106,845,346 106,597,352 106,077,439 105,152,783 105,188,466 106,750,818 106,851,782 106,899,571 106,930,208 106,950,212 106,953,160 106,911,899 106,766,958 106,421,293 105,748,903 104,618,248 106,228,292 106,805,697 106,874,800 106,913,769 106,939,868 106,954,467 106,945,641 +equals: +Capacity payment revenue ($) 0 106,620,030 106,821,249 106,882,603 106,918,835 106,943,238 106,955,132 106,937,429 106,845,346 106,597,352 106,077,439 105,152,783 105,188,466 106,750,818 106,851,782 106,899,571 106,930,208 106,950,212 106,953,160 106,911,899 106,766,958 106,421,293 105,748,903 104,618,248 106,228,292 106,805,697 106,874,800 106,913,769 106,939,868 106,954,467 106,945,641 + +Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4,736,098,012 +Total revenue ($) 0 869,963,097 877,048,087 883,846,159 889,773,632 895,290,600 900,359,769 904,334,112 905,517,245 900,806,605 885,792,240 855,521,104 861,766,087 925,383,166 933,794,552 940,253,991 946,087,931 951,529,076 956,309,822 959,334,340 958,197,165 948,964,571 926,567,069 885,901,922 955,520,329 983,217,780 990,604,170 996,809,414 1,002,509,201 1,007,745,194 5,748,102,846 + +Property tax net assessed value ($) 0 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 9,472,196,023 OPERATING EXPENSES -O&M fixed expense ($) 0 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 +O&M fixed expense ($) 0 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 O&M production-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 O&M capacity-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fuel expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Electricity purchase ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Property tax expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Insurance expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -Total operating expenses ($) 0 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 295,782,846 +Total operating expenses ($) 0 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 312,367,588 -EBITDA ($) 0 574,609,381 581,485,980 588,220,732 594,110,929 599,603,640 604,667,672 608,695,013 610,091,481 605,946,763 592,132,598 564,021,612 560,973,172 629,321,697 638,005,115 644,494,302 650,331,771 655,787,020 660,656,584 663,990,835 663,642,334 656,030,955 636,462,459 600,112,698 642,443,553 686,945,892 694,642,068 700,927,097 706,667,440 711,986,586 4,823,922,474 +EBITDA ($) 0 557,595,509 564,680,499 571,478,571 577,406,045 582,923,012 587,992,181 591,966,524 593,149,658 588,439,018 573,424,652 543,153,516 549,398,499 613,015,578 621,426,964 627,886,404 633,720,343 639,161,489 643,942,234 646,966,752 645,829,578 636,596,983 614,199,481 573,534,334 643,152,742 670,850,192 678,236,583 684,441,827 690,141,614 695,377,606 5,435,735,258 OPERATING ACTIVITIES -EBITDA ($) 0 574,609,381 581,485,980 588,220,732 594,110,929 599,603,640 604,667,672 608,695,013 610,091,481 605,946,763 592,132,598 564,021,612 560,973,172 629,321,697 638,005,115 644,494,302 650,331,771 655,787,020 660,656,584 663,990,835 663,642,334 656,030,955 636,462,459 600,112,698 642,443,553 686,945,892 694,642,068 700,927,097 706,667,440 711,986,586 4,823,922,474 +EBITDA ($) 0 557,595,509 564,680,499 571,478,571 577,406,045 582,923,012 587,992,181 591,966,524 593,149,658 588,439,018 573,424,652 543,153,516 549,398,499 613,015,578 621,426,964 627,886,404 633,720,343 639,161,489 643,942,234 646,966,752 645,829,578 636,596,983 614,199,481 573,534,334 643,152,742 670,850,192 678,236,583 684,441,827 690,141,614 695,377,606 5,435,735,258 Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 plus PBI if not available for debt service: Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -Debt interest payment ($) 0 280,222,657 276,420,855 272,406,153 268,166,627 263,689,688 258,962,040 253,969,644 248,697,674 243,130,474 237,251,510 231,043,324 224,487,480 217,564,509 210,253,851 202,533,796 194,381,419 185,772,508 176,681,498 167,081,391 156,943,679 146,238,255 134,933,327 122,995,323 110,388,791 97,076,293 83,018,295 68,173,049 52,496,469 35,942,001 18,460,483 -Cash flow from operating activities ($) 0 294,386,724 305,065,124 315,814,579 325,944,302 335,913,952 345,705,631 354,725,369 361,393,807 362,816,289 354,881,088 332,978,288 336,485,692 411,757,188 427,751,264 441,960,506 455,950,353 470,014,512 483,975,086 496,909,444 506,698,655 509,792,700 501,529,132 477,117,375 532,054,762 589,869,600 611,623,774 632,754,048 654,170,970 676,044,585 4,805,461,991 +Debt interest payment ($) 0 323,113,708 318,730,001 314,100,806 309,212,376 304,050,193 298,598,929 292,842,394 286,763,493 280,344,173 273,565,371 266,406,957 258,847,671 250,865,066 242,435,434 233,533,743 224,133,558 214,206,962 203,724,476 192,654,972 180,965,575 168,621,572 155,586,304 141,821,062 127,284,967 111,934,849 95,725,126 78,607,658 60,531,611 41,443,306 21,286,056 +Cash flow from operating activities ($) 0 234,481,801 245,950,498 257,377,765 268,193,669 278,872,819 289,393,252 299,124,130 306,386,165 308,094,845 299,859,281 276,746,559 290,550,828 362,150,512 378,991,530 394,352,660 409,586,786 424,954,527 440,217,758 454,311,780 464,864,003 467,975,411 458,613,176 431,713,272 515,867,775 558,915,343 582,511,457 605,834,169 629,610,002 653,934,300 5,414,449,202 INVESTING ACTIVITIES -Total installed cost ($) -8,214,829,229 +Total installed cost ($) -9,472,196,023 Debt closing costs ($) 0 Debt up-front fee ($) 0 minus: Total IBI income ($) 0 Total CBI income ($) 0 equals: -Purchase of property ($) -8,214,829,229 +Purchase of property ($) -9,472,196,023 plus: Reserve (increase)/decrease debt service ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reserve (increase)/decrease working capital ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 @@ -299,87 +317,93 @@ Reserve capital spending major equipment 1 ($) Reserve capital spending major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reserve capital spending major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 equals: -Cash flow from investing activities ($) -8,214,829,229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Cash flow from investing activities ($) -9,472,196,023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FINANCING ACTIVITIES -Issuance of equity ($) 3,210,853,213 -Size of debt ($) 5,003,976,017 +Issuance of equity ($) 3,702,308,372 +Size of debt ($) 5,769,887,651 minus: -Debt principal payment ($) 0 67,889,312 71,691,114 75,705,816 79,945,342 84,422,281 89,149,929 94,142,325 99,414,295 104,981,496 110,860,459 117,068,645 123,624,489 130,547,461 137,858,118 145,578,173 153,730,551 162,339,462 171,430,471 181,030,578 191,168,290 201,873,715 213,178,643 225,116,647 237,723,179 251,035,677 265,093,675 279,938,920 295,615,500 312,169,968 329,651,486 +Debt principal payment ($) 0 78,280,492 82,664,200 87,293,395 92,181,825 97,344,007 102,795,272 108,551,807 114,630,708 121,050,028 127,828,829 134,987,244 142,546,529 150,529,135 158,958,767 167,860,457 177,260,643 187,187,239 197,669,724 208,739,229 220,428,626 232,772,629 245,807,896 259,573,138 274,109,234 289,459,351 305,669,075 322,786,543 340,862,589 359,950,894 380,108,145 equals: -Cash flow from financing activities ($) 8,214,829,229 -67,889,312 -71,691,114 -75,705,816 -79,945,342 -84,422,281 -89,149,929 -94,142,325 -99,414,295 -104,981,496 -110,860,459 -117,068,645 -123,624,489 -130,547,461 -137,858,118 -145,578,173 -153,730,551 -162,339,462 -171,430,471 -181,030,578 -191,168,290 -201,873,715 -213,178,643 -225,116,647 -237,723,179 -251,035,677 -265,093,675 -279,938,920 -295,615,500 -312,169,968 -329,651,486 +Cash flow from financing activities ($) 9,472,196,023 -78,280,492 -82,664,200 -87,293,395 -92,181,825 -97,344,007 -102,795,272 -108,551,807 -114,630,708 -121,050,028 -127,828,829 -134,987,244 -142,546,529 -150,529,135 -158,958,767 -167,860,457 -177,260,643 -187,187,239 -197,669,724 -208,739,229 -220,428,626 -232,772,629 -245,807,896 -259,573,138 -274,109,234 -289,459,351 -305,669,075 -322,786,543 -340,862,589 -359,950,894 -380,108,145 PROJECT RETURNS Pre-tax Cash Flow: -Cash flow from operating activities ($) 0 294,386,724 305,065,124 315,814,579 325,944,302 335,913,952 345,705,631 354,725,369 361,393,807 362,816,289 354,881,088 332,978,288 336,485,692 411,757,188 427,751,264 441,960,506 455,950,353 470,014,512 483,975,086 496,909,444 506,698,655 509,792,700 501,529,132 477,117,375 532,054,762 589,869,600 611,623,774 632,754,048 654,170,970 676,044,585 4,805,461,991 -Cash flow from investing activities ($) -8,214,829,229 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -Cash flow from financing activities ($) 8,214,829,229 -67,889,312 -71,691,114 -75,705,816 -79,945,342 -84,422,281 -89,149,929 -94,142,325 -99,414,295 -104,981,496 -110,860,459 -117,068,645 -123,624,489 -130,547,461 -137,858,118 -145,578,173 -153,730,551 -162,339,462 -171,430,471 -181,030,578 -191,168,290 -201,873,715 -213,178,643 -225,116,647 -237,723,179 -251,035,677 -265,093,675 -279,938,920 -295,615,500 -312,169,968 -329,651,486 -Total pre-tax cash flow ($) 0 226,497,411 233,374,010 240,108,763 245,998,960 251,491,671 256,555,702 260,583,044 261,979,512 257,834,794 244,020,629 215,909,643 212,861,203 281,209,728 289,893,145 296,382,333 302,219,802 307,675,051 312,544,615 315,878,866 315,530,364 307,918,985 288,350,490 252,000,728 294,331,583 338,833,923 346,530,099 352,815,127 358,555,470 363,874,617 4,475,810,505 +Cash flow from operating activities ($) 0 234,481,801 245,950,498 257,377,765 268,193,669 278,872,819 289,393,252 299,124,130 306,386,165 308,094,845 299,859,281 276,746,559 290,550,828 362,150,512 378,991,530 394,352,660 409,586,786 424,954,527 440,217,758 454,311,780 464,864,003 467,975,411 458,613,176 431,713,272 515,867,775 558,915,343 582,511,457 605,834,169 629,610,002 653,934,300 5,414,449,202 +Cash flow from investing activities ($) -9,472,196,023 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Cash flow from financing activities ($) 9,472,196,023 -78,280,492 -82,664,200 -87,293,395 -92,181,825 -97,344,007 -102,795,272 -108,551,807 -114,630,708 -121,050,028 -127,828,829 -134,987,244 -142,546,529 -150,529,135 -158,958,767 -167,860,457 -177,260,643 -187,187,239 -197,669,724 -208,739,229 -220,428,626 -232,772,629 -245,807,896 -259,573,138 -274,109,234 -289,459,351 -305,669,075 -322,786,543 -340,862,589 -359,950,894 -380,108,145 +Total pre-tax cash flow ($) 0 156,201,309 163,286,299 170,084,370 176,011,844 181,528,812 186,597,980 190,572,323 191,755,457 187,044,817 172,030,452 141,759,315 148,004,299 211,621,377 220,032,764 226,492,203 232,326,143 237,767,288 242,548,034 245,572,551 244,435,377 235,202,783 212,805,280 172,140,134 241,758,541 269,455,992 276,842,382 283,047,626 288,747,413 293,983,406 5,034,341,057 Pre-tax Returns: -Issuance of equity ($) 3,210,853,213 -Total pre-tax cash flow ($) 0 226,497,411 233,374,010 240,108,763 245,998,960 251,491,671 256,555,702 260,583,044 261,979,512 257,834,794 244,020,629 215,909,643 212,861,203 281,209,728 289,893,145 296,382,333 302,219,802 307,675,051 312,544,615 315,878,866 315,530,364 307,918,985 288,350,490 252,000,728 294,331,583 338,833,923 346,530,099 352,815,127 358,555,470 363,874,617 4,475,810,505 -Total pre-tax returns ($) -3,210,853,213 226,497,411 233,374,010 240,108,763 245,998,960 251,491,671 256,555,702 260,583,044 261,979,512 257,834,794 244,020,629 215,909,643 212,861,203 281,209,728 289,893,145 296,382,333 302,219,802 307,675,051 312,544,615 315,878,866 315,530,364 307,918,985 288,350,490 252,000,728 294,331,583 338,833,923 346,530,099 352,815,127 358,555,470 363,874,617 4,475,810,505 +Issuance of equity ($) 3,702,308,372 +Total pre-tax cash flow ($) 0 156,201,309 163,286,299 170,084,370 176,011,844 181,528,812 186,597,980 190,572,323 191,755,457 187,044,817 172,030,452 141,759,315 148,004,299 211,621,377 220,032,764 226,492,203 232,326,143 237,767,288 242,548,034 245,572,551 244,435,377 235,202,783 212,805,280 172,140,134 241,758,541 269,455,992 276,842,382 283,047,626 288,747,413 293,983,406 5,034,341,057 +Total pre-tax returns ($) -3,702,308,372 156,201,309 163,286,299 170,084,370 176,011,844 181,528,812 186,597,980 190,572,323 191,755,457 187,044,817 172,030,452 141,759,315 148,004,299 211,621,377 220,032,764 226,492,203 232,326,143 237,767,288 242,548,034 245,572,551 244,435,377 235,202,783 212,805,280 172,140,134 241,758,541 269,455,992 276,842,382 283,047,626 288,747,413 293,983,406 5,034,341,057 After-tax Returns: -Total pre-tax returns ($) -3,210,853,213 226,497,411 233,374,010 240,108,763 245,998,960 251,491,671 256,555,702 260,583,044 261,979,512 257,834,794 244,020,629 215,909,643 212,861,203 281,209,728 289,893,145 296,382,333 302,219,802 307,675,051 312,544,615 315,878,866 315,530,364 307,918,985 288,350,490 252,000,728 294,331,583 338,833,923 346,530,099 352,815,127 358,555,470 363,874,617 4,475,810,505 -Federal ITC total income ($) 0 3,285,931,692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total pre-tax returns ($) -3,702,308,372 156,201,309 163,286,299 170,084,370 176,011,844 181,528,812 186,597,980 190,572,323 191,755,457 187,044,817 172,030,452 141,759,315 148,004,299 211,621,377 220,032,764 226,492,203 232,326,143 237,767,288 242,548,034 245,572,551 244,435,377 235,202,783 212,805,280 172,140,134 241,758,541 269,455,992 276,842,382 283,047,626 288,747,413 293,983,406 5,034,341,057 +Federal ITC total income ($) 0 3,788,878,409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -Federal tax benefit (liability) ($) 0 -25,406,604 4,595,027 2,495,659 517,324 -1,429,749 -3,342,064 -5,103,619 -6,405,965 -6,683,775 -5,134,031 -856,414 -1,541,410 -16,241,933 -19,365,576 -22,140,641 -24,872,858 -27,619,588 -30,346,088 -32,872,168 -34,784,001 -67,475,391 -97,948,640 -93,181,023 -103,910,295 -115,201,533 -119,450,123 -123,576,866 -127,759,590 -132,031,507 -938,506,727 +Federal tax benefit (liability) ($) 0 -8,795,898 25,962,663 23,730,918 21,618,572 19,532,934 17,478,293 15,577,853 14,159,577 13,825,872 15,434,278 19,948,192 17,252,219 3,268,800 -20,250 -3,020,279 -5,995,504 -8,996,824 -11,977,733 -14,730,295 -16,791,144 -54,397,200 -89,567,153 -84,313,602 -100,748,976 -109,156,166 -113,764,488 -118,319,413 -122,962,833 -127,713,369 -1,057,441,929 State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -State tax benefit (liability) ($) 0 -9,106,310 1,646,963 894,501 185,421 -512,455 -1,197,872 -1,829,254 -2,296,045 -2,395,618 -1,840,154 -306,958 -552,477 -5,821,481 -6,941,067 -7,935,714 -8,915,003 -9,899,494 -10,876,734 -11,782,139 -12,467,384 -24,184,728 -35,107,039 -33,398,216 -37,243,833 -41,290,872 -42,813,664 -44,292,783 -45,791,968 -47,323,121 -336,382,339 -Total after-tax returns ($) -3,210,853,213 3,477,916,189 239,616,001 243,498,923 246,701,704 249,549,467 252,015,766 253,650,171 253,277,502 248,755,400 237,046,444 214,746,271 210,767,316 259,146,313 263,586,503 266,305,978 268,431,941 270,155,968 271,321,792 271,224,558 268,278,979 216,258,866 155,294,811 125,421,489 153,177,455 182,341,518 184,266,312 184,945,479 185,003,912 184,519,989 3,200,921,439 +State tax benefit (liability) ($) 0 -3,152,652 9,305,614 8,505,705 7,748,592 7,001,052 6,264,621 5,583,460 5,075,117 4,955,510 5,531,999 7,149,890 6,183,591 1,171,613 -7,258 -1,082,537 -2,148,926 -3,224,668 -4,293,094 -5,279,676 -6,018,331 -19,497,204 -32,102,922 -30,219,929 -36,110,744 -39,124,074 -40,775,802 -42,408,392 -44,072,700 -45,775,401 -379,011,444 +Total after-tax returns ($) -3,702,308,372 3,933,131,168 198,554,576 202,320,993 205,379,008 208,062,797 210,340,895 211,733,636 210,990,152 205,826,199 192,996,729 168,857,397 171,440,108 216,061,791 220,005,255 222,389,386 224,181,713 225,545,796 226,277,207 225,562,580 221,625,901 161,308,378 91,135,204 57,606,603 104,898,820 121,175,751 122,302,093 122,319,821 121,711,879 120,494,636 3,597,887,684 -After-tax net cash flow ($) -78,805,835 -80,933,592 -83,118,799 -1,464,230,383 -1,503,764,603 3,477,916,189 239,616,001 243,498,923 246,701,704 249,549,467 252,015,766 253,650,171 253,277,502 248,755,400 237,046,444 214,746,271 210,767,316 259,146,313 263,586,503 266,305,978 268,431,941 270,155,968 271,321,792 271,224,558 268,278,979 216,258,866 155,294,811 125,421,489 153,177,455 182,341,518 184,266,312 184,945,479 185,003,912 184,519,989 3,200,921,439 -After-tax cumulative IRR (%) NaN NaN NaN NaN NaN 4.82 8.61 11.73 14.18 16.06 17.50 18.59 19.42 20.04 20.50 20.83 21.08 21.33 21.53 21.69 21.81 21.92 22.00 22.07 22.12 22.15 22.17 22.19 22.20 22.21 22.22 22.23 22.24 22.24 22.32 -After-tax cumulative NPV ($) -78,805,835 -149,168,187 -211,991,716 -1,174,144,444 -2,033,209,379 -305,873,553 -202,410,564 -111,003,917 -30,491,211 40,313,222 102,477,808 156,873,190 204,094,172 244,414,352 277,818,078 304,126,733 326,575,257 350,571,382 371,790,668 390,428,701 406,761,659 421,052,467 433,530,278 444,374,398 453,699,712 460,234,962 464,314,931 467,179,659 470,221,369 473,369,262 476,134,879 478,548,123 480,646,821 482,466,623 509,911,871 +After-tax net cash flow ($) -90,867,904 -93,321,338 -95,841,014 -1,688,346,382 -1,733,931,735 3,933,131,168 198,554,576 202,320,993 205,379,008 208,062,797 210,340,895 211,733,636 210,990,152 205,826,199 192,996,729 168,857,397 171,440,108 216,061,791 220,005,255 222,389,386 224,181,713 225,545,796 226,277,207 225,562,580 221,625,901 161,308,378 91,135,204 57,606,603 104,898,820 121,175,751 122,302,093 122,319,821 121,711,879 120,494,636 3,597,887,684 +After-tax cumulative IRR (%) NaN NaN NaN NaN NaN 3.63 6.47 8.92 10.94 12.58 13.87 14.90 15.70 16.32 16.78 17.11 17.38 17.65 17.88 18.07 18.22 18.34 18.45 18.53 18.60 18.64 18.66 18.67 18.69 18.71 18.72 18.73 18.74 18.75 18.93 +After-tax cumulative NPV ($) -90,867,904 -171,999,962 -244,439,299 -1,353,859,712 -2,344,413,653 -390,991,544 -305,258,331 -229,309,396 -162,282,622 -103,249,162 -51,364,492 -5,958,128 33,378,813 66,740,699 93,937,099 114,623,889 132,883,729 152,890,364 170,601,265 186,165,694 199,806,212 211,737,214 222,143,472 231,161,930 238,865,594 243,740,265 246,134,606 247,450,387 249,533,408 251,625,352 253,460,960 255,057,039 256,437,748 257,626,109 288,475,013 AFTER-TAX LCOE AND PPA PRICE -Annual costs ($) -78,805,835 -80,933,592 -83,118,799 -1,464,230,383 -1,503,764,603 2,607,523,962 -637,652,825 -640,504,656 -643,192,071 -645,837,019 -648,434,752 -650,827,688 -652,596,825 -652,974,210 -650,869,001 -645,058,188 -645,988,702 -665,958,230 -670,201,458 -673,971,170 -677,682,676 -681,413,898 -685,117,638 -688,549,123 -691,146,201 -735,554,935 -776,950,495 -770,474,055 -785,048,944 -800,387,221 -806,158,603 -811,764,465 -817,446,374 -823,249,444 2,188,630,733 -PPA revenue ($) 0 0 0 0 0 763,392,227 770,268,826 777,003,578 782,893,776 788,386,486 793,450,518 797,477,860 798,874,327 794,729,609 780,915,445 752,804,459 749,756,018 818,104,543 826,787,961 833,277,149 839,114,617 844,569,867 849,439,430 852,773,682 852,425,180 844,813,801 825,245,306 788,895,544 831,226,399 875,728,739 883,424,915 889,709,943 895,450,286 900,769,433 905,290,706 -Electricity to grid (kWh) 0 0 0 0 0 8,035,707,655 8,108,092,907 8,130,203,812 8,143,267,897 8,152,067,897 8,156,358,121 8,150,003,674 8,116,991,743 8,028,382,759 7,843,666,580 7,518,270,834 7,445,442,088 8,078,449,130 8,118,499,225 8,136,677,558 8,148,326,058 8,156,155,157 8,158,273,437 8,145,703,332 8,098,282,159 7,982,744,033 7,756,064,902 7,374,923,287 7,729,462,517 8,100,349,077 8,128,679,747 8,143,798,107 8,153,799,727 8,159,882,531 8,158,712,200 +Annual costs ($) -90,867,904 -93,321,338 -95,841,014 -1,688,346,382 -1,733,931,735 3,063,168,071 -678,493,511 -681,525,165 -684,394,625 -687,227,803 -690,018,874 -692,600,476 -694,527,094 -694,980,406 -692,795,511 -686,663,706 -690,325,979 -709,321,375 -713,789,297 -717,864,605 -721,906,218 -725,983,280 -730,032,615 -733,771,760 -736,571,264 -787,656,193 -835,431,864 -828,295,319 -850,621,509 -862,042,029 -868,302,078 -874,489,593 -880,797,322 -887,250,558 2,585,882,850 +PPA revenue ($) 0 0 0 0 0 763,343,067 770,226,838 776,963,556 782,854,797 788,347,362 793,404,637 797,396,683 798,671,899 794,209,253 779,714,801 750,368,321 756,577,621 818,632,348 826,942,770 833,354,420 839,157,723 844,578,864 849,356,662 852,422,441 851,430,207 842,543,278 820,818,166 781,283,674 849,292,037 876,412,083 883,729,370 889,895,645 895,569,333 900,790,727 905,059,193 +Electricity to grid (kWh) 0 0 0 0 0 8,035,190,178 8,107,650,926 8,129,785,032 8,142,862,465 8,151,663,345 8,155,886,478 8,149,174,071 8,114,934,966 8,023,126,108 7,831,607,082 7,493,941,085 7,513,183,922 8,083,660,983 8,120,019,343 8,137,432,090 8,148,744,640 8,156,242,051 8,157,478,508 8,142,348,272 8,088,829,634 7,961,289,596 7,714,456,443 7,303,764,365 7,897,452,458 8,106,669,902 8,131,481,141 8,145,497,899 8,154,883,749 8,160,075,434 8,156,625,748 -Present value of annual costs ($) 2,847,750,635 -Present value of annual energy nominal (kWh) 30,166,877,246 -LCOE Levelized cost of energy nominal (cents/kWh) 9.44 +Present value of annual costs ($) 3,068,038,804 -Present value of PPA revenue ($) 2,956,909,593 -Present value of annual energy nominal (kWh) 30,166,877,246 +Present value of annual energy costs ($) 2,960,105,234 +Present value of annual energy nominal (kWh) 30,167,357,656 +LCOE Levelized cost of energy nominal (cents/kWh) 9.81 + +Present value of PPA revenue ($) 2,956,972,031 +Present value of annual energy nominal (kWh) 30,167,357,656 LPPA Levelized PPA price nominal (cents/kWh) 9.80 +Present value of annual heat costs ($) 107,933,570 +Present value of annual heat provided (MMBTU) 30,295,399 +LCOH Levelized cost of heating nominal ($/MMBTU) 3.56 + PROJECT STATE INCOME TAXES -EBITDA ($) 0 574,609,381 581,485,980 588,220,732 594,110,929 599,603,640 604,667,672 608,695,013 610,091,481 605,946,763 592,132,598 564,021,612 560,973,172 629,321,697 638,005,115 644,494,302 650,331,771 655,787,020 660,656,584 663,990,835 663,642,334 656,030,955 636,462,459 600,112,698 642,443,553 686,945,892 694,642,068 700,927,097 706,667,440 711,986,586 4,823,922,474 +EBITDA ($) 0 557,595,509 564,680,499 571,478,571 577,406,045 582,923,012 587,992,181 591,966,524 593,149,658 588,439,018 573,424,652 543,153,516 549,398,499 613,015,578 621,426,964 627,886,404 633,720,343 639,161,489 643,942,234 646,966,752 645,829,578 636,596,983 614,199,481 573,534,334 643,152,742 670,850,192 678,236,583 684,441,827 690,141,614 695,377,606 5,435,735,258 State taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State taxable IBI income ($) 0 State taxable CBI income ($) 0 minus: -Debt interest payment ($) 0 280,222,657 276,420,855 272,406,153 268,166,627 263,689,688 258,962,040 253,969,644 248,697,674 243,130,474 237,251,510 231,043,324 224,487,480 217,564,509 210,253,851 202,533,796 194,381,419 185,772,508 176,681,498 167,081,391 156,943,679 146,238,255 134,933,327 122,995,323 110,388,791 97,076,293 83,018,295 68,173,049 52,496,469 35,942,001 18,460,483 -Total state tax depreciation ($) 0 164,296,585 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 164,296,585 0 0 0 0 0 0 0 0 0 +Debt interest payment ($) 0 323,113,708 318,730,001 314,100,806 309,212,376 304,050,193 298,598,929 292,842,394 286,763,493 280,344,173 273,565,371 266,406,957 258,847,671 250,865,066 242,435,434 233,533,743 224,133,558 214,206,962 203,724,476 192,654,972 180,965,575 168,621,572 155,586,304 141,821,062 127,284,967 111,934,849 95,725,126 78,607,658 60,531,611 41,443,306 21,286,056 +Total state tax depreciation ($) 0 189,443,920 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 189,443,920 0 0 0 0 0 0 0 0 0 equals: -State taxable income ($) 0 130,090,139 -23,528,045 -12,778,590 -2,648,867 7,320,783 17,112,462 26,132,200 32,800,638 34,223,120 26,287,919 4,385,119 7,892,523 83,164,019 99,158,095 113,367,337 127,357,183 141,421,343 155,381,917 168,316,275 178,105,485 345,496,115 501,529,132 477,117,375 532,054,762 589,869,600 611,623,774 632,754,048 654,170,970 676,044,585 4,805,461,991 +State taxable income ($) 0 45,037,880 -132,937,343 -121,510,076 -110,694,172 -100,015,022 -89,494,589 -79,763,711 -72,501,676 -70,792,996 -79,028,560 -102,141,282 -88,337,013 -16,737,329 103,689 15,464,819 30,698,945 46,066,686 61,329,917 75,423,939 85,976,162 278,531,491 458,613,176 431,713,272 515,867,775 558,915,343 582,511,457 605,834,169 629,610,002 653,934,300 5,414,449,202 State income tax rate (frac) 0.0 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 -State tax benefit (liability) ($) 0 -9,106,310 1,646,963 894,501 185,421 -512,455 -1,197,872 -1,829,254 -2,296,045 -2,395,618 -1,840,154 -306,958 -552,477 -5,821,481 -6,941,067 -7,935,714 -8,915,003 -9,899,494 -10,876,734 -11,782,139 -12,467,384 -24,184,728 -35,107,039 -33,398,216 -37,243,833 -41,290,872 -42,813,664 -44,292,783 -45,791,968 -47,323,121 -336,382,339 +State tax benefit (liability) ($) 0 -3,152,652 9,305,614 8,505,705 7,748,592 7,001,052 6,264,621 5,583,460 5,075,117 4,955,510 5,531,999 7,149,890 6,183,591 1,171,613 -7,258 -1,082,537 -2,148,926 -3,224,668 -4,293,094 -5,279,676 -6,018,331 -19,497,204 -32,102,922 -30,219,929 -36,110,744 -39,124,074 -40,775,802 -42,408,392 -44,072,700 -45,775,401 -379,011,444 PROJECT FEDERAL INCOME TAXES -EBITDA ($) 0 574,609,381 581,485,980 588,220,732 594,110,929 599,603,640 604,667,672 608,695,013 610,091,481 605,946,763 592,132,598 564,021,612 560,973,172 629,321,697 638,005,115 644,494,302 650,331,771 655,787,020 660,656,584 663,990,835 663,642,334 656,030,955 636,462,459 600,112,698 642,443,553 686,945,892 694,642,068 700,927,097 706,667,440 711,986,586 4,823,922,474 +EBITDA ($) 0 557,595,509 564,680,499 571,478,571 577,406,045 582,923,012 587,992,181 591,966,524 593,149,658 588,439,018 573,424,652 543,153,516 549,398,499 613,015,578 621,426,964 627,886,404 633,720,343 639,161,489 643,942,234 646,966,752 645,829,578 636,596,983 614,199,481 573,534,334 643,152,742 670,850,192 678,236,583 684,441,827 690,141,614 695,377,606 5,435,735,258 Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -State tax benefit (liability) ($) 0 -9,106,310 1,646,963 894,501 185,421 -512,455 -1,197,872 -1,829,254 -2,296,045 -2,395,618 -1,840,154 -306,958 -552,477 -5,821,481 -6,941,067 -7,935,714 -8,915,003 -9,899,494 -10,876,734 -11,782,139 -12,467,384 -24,184,728 -35,107,039 -33,398,216 -37,243,833 -41,290,872 -42,813,664 -44,292,783 -45,791,968 -47,323,121 -336,382,339 +State tax benefit (liability) ($) 0 -3,152,652 9,305,614 8,505,705 7,748,592 7,001,052 6,264,621 5,583,460 5,075,117 4,955,510 5,531,999 7,149,890 6,183,591 1,171,613 -7,258 -1,082,537 -2,148,926 -3,224,668 -4,293,094 -5,279,676 -6,018,331 -19,497,204 -32,102,922 -30,219,929 -36,110,744 -39,124,074 -40,775,802 -42,408,392 -44,072,700 -45,775,401 -379,011,444 State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Federal taxable IBI income ($) 0 Federal taxable CBI income ($) 0 Federal taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 minus: -Debt interest payment ($) 0 280,222,657 276,420,855 272,406,153 268,166,627 263,689,688 258,962,040 253,969,644 248,697,674 243,130,474 237,251,510 231,043,324 224,487,480 217,564,509 210,253,851 202,533,796 194,381,419 185,772,508 176,681,498 167,081,391 156,943,679 146,238,255 134,933,327 122,995,323 110,388,791 97,076,293 83,018,295 68,173,049 52,496,469 35,942,001 18,460,483 -Total federal tax depreciation ($) 0 164,296,585 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 328,593,169 164,296,585 0 0 0 0 0 0 0 0 0 +Debt interest payment ($) 0 323,113,708 318,730,001 314,100,806 309,212,376 304,050,193 298,598,929 292,842,394 286,763,493 280,344,173 273,565,371 266,406,957 258,847,671 250,865,066 242,435,434 233,533,743 224,133,558 214,206,962 203,724,476 192,654,972 180,965,575 168,621,572 155,586,304 141,821,062 127,284,967 111,934,849 95,725,126 78,607,658 60,531,611 41,443,306 21,286,056 +Total federal tax depreciation ($) 0 189,443,920 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 378,887,841 189,443,920 0 0 0 0 0 0 0 0 0 equals: -Federal taxable income ($) 0 120,983,830 -21,881,082 -11,884,089 -2,463,447 6,808,328 15,914,590 24,302,946 30,504,593 31,827,502 24,447,765 4,078,161 7,340,046 77,342,538 92,217,028 105,431,623 118,442,181 131,521,849 144,505,183 156,534,136 165,638,101 321,311,387 466,422,093 443,719,159 494,810,929 548,578,728 568,810,110 588,461,265 608,379,002 628,721,464 4,469,079,652 +Federal taxable income ($) 0 41,885,229 -123,631,729 -113,004,371 -102,945,580 -93,013,970 -83,229,968 -74,180,251 -67,426,559 -65,837,487 -73,496,561 -94,991,392 -82,153,422 -15,565,716 96,431 14,382,282 28,550,019 42,842,018 57,036,823 70,144,264 79,957,831 259,034,287 426,510,254 401,493,343 479,757,031 519,791,269 541,735,655 563,425,777 585,537,302 608,158,899 5,035,437,758 Federal income tax rate (frac) 0.0 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 -Federal tax benefit (liability) ($) 0 -25,406,604 4,595,027 2,495,659 517,324 -1,429,749 -3,342,064 -5,103,619 -6,405,965 -6,683,775 -5,134,031 -856,414 -1,541,410 -16,241,933 -19,365,576 -22,140,641 -24,872,858 -27,619,588 -30,346,088 -32,872,168 -34,784,001 -67,475,391 -97,948,640 -93,181,023 -103,910,295 -115,201,533 -119,450,123 -123,576,866 -127,759,590 -132,031,507 -938,506,727 +Federal tax benefit (liability) ($) 0 -8,795,898 25,962,663 23,730,918 21,618,572 19,532,934 17,478,293 15,577,853 14,159,577 13,825,872 15,434,278 19,948,192 17,252,219 3,268,800 -20,250 -3,020,279 -5,995,504 -8,996,824 -11,977,733 -14,730,295 -16,791,144 -54,397,200 -89,567,153 -84,313,602 -100,748,976 -109,156,166 -113,764,488 -118,319,413 -122,962,833 -127,713,369 -1,057,441,929 CASH INCENTIVES Federal IBI income ($) 0 @@ -405,30 +429,30 @@ Federal PTC income ($) State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Federal ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -Federal ITC percent income ($) 0 3,285,931,692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -Federal ITC total income ($) 0 3,285,931,692 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC percent income ($) 0 3,788,878,409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC total income ($) 0 3,788,878,409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State ITC percent income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 DEBT REPAYMENT -Debt balance ($) 5,003,976,017 4,936,086,704 4,864,395,590 4,788,689,774 4,708,744,432 4,624,322,151 4,535,172,222 4,441,029,897 4,341,615,602 4,236,634,106 4,125,773,647 4,008,705,002 3,885,080,512 3,754,533,052 3,616,674,933 3,471,096,760 3,317,366,209 3,155,026,748 2,983,596,276 2,802,565,698 2,611,397,408 2,409,523,694 2,196,345,051 1,971,228,404 1,733,505,226 1,482,469,549 1,217,375,874 937,436,954 641,821,454 329,651,486 0 -Debt interest payment ($) 0 280,222,657 276,420,855 272,406,153 268,166,627 263,689,688 258,962,040 253,969,644 248,697,674 243,130,474 237,251,510 231,043,324 224,487,480 217,564,509 210,253,851 202,533,796 194,381,419 185,772,508 176,681,498 167,081,391 156,943,679 146,238,255 134,933,327 122,995,323 110,388,791 97,076,293 83,018,295 68,173,049 52,496,469 35,942,001 18,460,483 -Debt principal payment ($) 0 67,889,312 71,691,114 75,705,816 79,945,342 84,422,281 89,149,929 94,142,325 99,414,295 104,981,496 110,860,459 117,068,645 123,624,489 130,547,461 137,858,118 145,578,173 153,730,551 162,339,462 171,430,471 181,030,578 191,168,290 201,873,715 213,178,643 225,116,647 237,723,179 251,035,677 265,093,675 279,938,920 295,615,500 312,169,968 329,651,486 -Debt total payment ($) 0 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 +Debt balance ($) 5,769,887,651 5,691,607,159 5,608,942,959 5,521,649,564 5,429,467,739 5,332,123,732 5,229,328,460 5,120,776,653 5,006,145,945 4,885,095,918 4,757,267,088 4,622,279,845 4,479,733,315 4,329,204,180 4,170,245,414 4,002,384,957 3,825,124,313 3,637,937,074 3,440,267,350 3,231,528,121 3,011,099,495 2,778,326,866 2,532,518,970 2,272,945,832 1,998,836,597 1,709,377,246 1,403,708,171 1,080,921,628 740,059,039 380,108,145 0 +Debt interest payment ($) 0 323,113,708 318,730,001 314,100,806 309,212,376 304,050,193 298,598,929 292,842,394 286,763,493 280,344,173 273,565,371 266,406,957 258,847,671 250,865,066 242,435,434 233,533,743 224,133,558 214,206,962 203,724,476 192,654,972 180,965,575 168,621,572 155,586,304 141,821,062 127,284,967 111,934,849 95,725,126 78,607,658 60,531,611 41,443,306 21,286,056 +Debt principal payment ($) 0 78,280,492 82,664,200 87,293,395 92,181,825 97,344,007 102,795,272 108,551,807 114,630,708 121,050,028 127,828,829 134,987,244 142,546,529 150,529,135 158,958,767 167,860,457 177,260,643 187,187,239 197,669,724 208,739,229 220,428,626 232,772,629 245,807,896 259,573,138 274,109,234 289,459,351 305,669,075 322,786,543 340,862,589 359,950,894 380,108,145 +Debt total payment ($) 0 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 DSCR (DEBT FRACTION) -EBITDA ($) 0 574,609,381 581,485,980 588,220,732 594,110,929 599,603,640 604,667,672 608,695,013 610,091,481 605,946,763 592,132,598 564,021,612 560,973,172 629,321,697 638,005,115 644,494,302 650,331,771 655,787,020 660,656,584 663,990,835 663,642,334 656,030,955 636,462,459 600,112,698 642,443,553 686,945,892 694,642,068 700,927,097 706,667,440 711,986,586 4,823,922,474 +EBITDA ($) 0 557,595,509 564,680,499 571,478,571 577,406,045 582,923,012 587,992,181 591,966,524 593,149,658 588,439,018 573,424,652 543,153,516 549,398,499 613,015,578 621,426,964 627,886,404 633,720,343 639,161,489 643,942,234 646,966,752 645,829,578 636,596,983 614,199,481 573,534,334 643,152,742 670,850,192 678,236,583 684,441,827 690,141,614 695,377,606 5,435,735,258 minus: Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 equals: -Cash available for debt service (CAFDS) ($) 0 574,609,381 581,485,980 588,220,732 594,110,929 599,603,640 604,667,672 608,695,013 610,091,481 605,946,763 592,132,598 564,021,612 560,973,172 629,321,697 638,005,115 644,494,302 650,331,771 655,787,020 660,656,584 663,990,835 663,642,334 656,030,955 636,462,459 600,112,698 642,443,553 686,945,892 694,642,068 700,927,097 706,667,440 711,986,586 4,823,922,474 -Debt total payment ($) 0 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 348,111,969 -DSCR (pre-tax) 0.0 1.65 1.67 1.69 1.71 1.72 1.74 1.75 1.75 1.74 1.70 1.62 1.61 1.81 1.83 1.85 1.87 1.88 1.90 1.91 1.91 1.88 1.83 1.72 1.85 1.97 2.0 2.01 2.03 2.05 13.86 +Cash available for debt service (CAFDS) ($) 0 557,595,509 564,680,499 571,478,571 577,406,045 582,923,012 587,992,181 591,966,524 593,149,658 588,439,018 573,424,652 543,153,516 549,398,499 613,015,578 621,426,964 627,886,404 633,720,343 639,161,489 643,942,234 646,966,752 645,829,578 636,596,983 614,199,481 573,534,334 643,152,742 670,850,192 678,236,583 684,441,827 690,141,614 695,377,606 5,435,735,258 +Debt total payment ($) 0 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 401,394,201 +DSCR (pre-tax) 0.0 1.39 1.41 1.42 1.44 1.45 1.46 1.47 1.48 1.47 1.43 1.35 1.37 1.53 1.55 1.56 1.58 1.59 1.60 1.61 1.61 1.59 1.53 1.43 1.60 1.67 1.69 1.71 1.72 1.73 13.54 RESERVES Reserves working capital funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/tests/examples/example14_data-center.txt b/tests/examples/example14_data-center.txt index b782a52f4..39d7393e5 100644 --- a/tests/examples/example14_data-center.txt +++ b/tests/examples/example14_data-center.txt @@ -1,8 +1,12 @@ -# Example 14: 1 GW Geothermal-Powered Data Center +# Example 14: 1 GW Geothermal-Powered Data Center (CHP) # This example models a 1 GWe Enhanced Geothermal System (EGS) to power a hyperscale data center. -# Based on the techno-economic analysis by Project InnerSpace (Yusifov & Enriquez, 2025), the simulation incorporates direct -# cooling via an absorption chiller, yielding an estimated $107 million in annual operating cost savings over the 30-year project lifespan. -# The absorption chiller is modeled as an Add-On providing capacity payment revenue equivalent to the estimated savings. +# Based on the techno-economic analysis by Yusifov & Enriquez (2025), the simulation incorporates direct +# cooling via an absorption chiller, yielding an average of $107 million in annual operating cost savings over the 30-year project lifespan. +# The absorption chiller is thermodynamically modeled as cogenerated heat, with heat sales yielding revenue equivalent to Yusifov & Enriquez's estimated savings. +# The absorption chiller CAPEX of $562M is modeled via an add-on. +# +# For further context on SAM Economic Models Combined Heat and Power (CHP) / cogeneration conventions, see: +# https://softwareengineerprogrammer.github.io/GEOPHIRES/SAM-EM_End-Uses-and-Surface-Applications.html # # Reference: Yusifov, M., & Enriquez, N. (2025, July). From Core to Code: Powering the AI Revolution with Geothermal Energy. Project InnerSpace & Future Ventures. https://projectinnerspace.org/resources/Powering-the-AI-Revolution.pdf @@ -16,6 +20,9 @@ Electricity Escalation Rate Per Year, 0.00057, -- calibrated to reach 10 cents/k Ending Electricity Sale Price, 0.15, -- Note that this value does not directly determine price at the end of the project life, but rather as a cap as the maximum price to which the starting price can escalate. Electricity Escalation Start Year, 1 +Starting Heat Sale Price, 0.045 +Ending Heat Sale Price, 1, -- Note that this parameter has no effect unless escalation is applied and ending heat sale price is reached. + Discount Rate, 0.12 Fraction of Investment in Bonds, .6, -- Based on fraction of CAPEX with $1 billion in sponsor equity per https://www.linkedin.com/pulse/fervo-energy-technology-day-2024-entering-geothermal-decade-matson-n4stc/ Inflated Bond Interest Rate, .056 @@ -28,7 +35,7 @@ Property Tax Rate, 0 One-time Flat License Fees Etc, 100, -- Permitting & Land Acquisition = $100M Exploration Capital Cost, 500 -Surface Plant Capital Cost Adjustment Factor, 1.0581, -- $4.225B power plant cost +Surface Plant Capital Cost Adjustment Factor, 1.3782, -- $4.225B power plant cost Well Drilling Cost Correlation, 3, -- VERTICAL_LARGE (2025 NREL Geothermal Drilling Cost Curve Update) Well Drilling and Completion Capital Cost Adjustment Factor, 0.713, -- Based on $12,257,861.64/well with 46% drilling cost ratio @@ -42,19 +49,16 @@ Field Gathering System Capital Cost Adjustment Factor, 0.3972, -- Gathering cost Construction Years, 5 Construction CAPEX Schedule, 0.0268, 0.0268, 0.0268, 0.4597, 0.4597, -- 3-year derisking phase followed by 2-year construction phase +# *** SURFACE & SUBSURFACE TECHNICAL PARAMETERS *** +# ************************************************* +End-Use Option, 31, -- CHP: Cogeneration topping cycle A power plant is followed by a direct-use heat application in series. Heat at high temperatures from the geothermal fluid is first converted into electricity. Any remaining heat in the geothermal fluid after leaving the power plant is supplied to a low-temperature direct-use heat application. -# *** ADD-ONS *** -# *************** +Power Plant Type, 2, -- Supercritical ORC AddOn Nickname 1, Absorption Chiller AddOn CAPEX 1, 562 +AddOn Profit Gained 1, 0, -- note that revenue is modeled as heat sales, not add-on profit. AddOn OPEX 1, 0 -AddOn Profit Gained 1, 107 -# *** SURFACE & SUBSURFACE TECHNICAL PARAMETERS *** -# ************************************************* -End-Use Option, 1, -- Electricity - -Power Plant Type, 2, -- Supercritical ORC Plant Lifetime, 30 Reservoir Model, 1, -- Multiple Parallel Fractures (Gringarten) @@ -85,7 +89,7 @@ Production Well Diameter, 8.5, -- p. 25 Injection Well Diameter, 8.5, -- p. 25 Ramey Production Wellbore Model, 1 -Injection Temperature, 53.6, -- GEOPHIRES model-calculated reinjection temperature +Injection Temperature, 46.72, -- Injection temperature that yields ~300 MWth heat Injection Wellbore Temperature Gain, 3 Ambient Temperature, 10 diff --git a/tests/examples/example3.out b/tests/examples/example3.out index 9d4c402ab..974173df2 100644 --- a/tests/examples/example3.out +++ b/tests/examples/example3.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.9.47 - Simulation Date: 2025-07-31 - Simulation Time: 08:57 - Calculation Time: 0.124 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-07 + Simulation Time: 10:46 + Calculation Time: 0.154 sec ***SUMMARY OF RESULTS*** @@ -91,13 +91,15 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 4.64 MUSD Drilling and completion costs: 27.29 MUSD Drilling and completion costs per well: 4.55 MUSD Stimulation costs: 4.53 MUSD Surface power plant costs: 64.05 MUSD + of which Electrical Plant Cost: 59.87 MUSD + of which Heat Plant Cost: 4.17 MUSD Field gathering system costs: 3.17 MUSD Total surface equipment costs: 67.22 MUSD - Exploration costs: 4.64 MUSD Total capital costs: 103.68 MUSD @@ -110,7 +112,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.23 MW/(kg/s) Maximum Total Electricity Generation: 21.16 MW Average Total Electricity Generation: 19.70 MW diff --git a/tests/examples/example_SAM-single-owner-PPA-2.out b/tests/examples/example_SAM-single-owner-PPA-2.out index 75c94e006..40442848d 100644 --- a/tests/examples/example_SAM-single-owner-PPA-2.out +++ b/tests/examples/example_SAM-single-owner-PPA-2.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.11.18 - Simulation Date: 2026-02-27 - Simulation Time: 13:19 - Calculation Time: 1.006 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-01 + Simulation Time: 09:30 + Calculation Time: 1.027 sec ***SUMMARY OF RESULTS*** @@ -99,13 +99,13 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 30.00 MUSD Drilling and completion costs: 299.52 MUSD Drilling and completion costs per well: 3.84 MUSD Stimulation costs: 234.00 MUSD Surface power plant costs: 898.83 MUSD Field gathering system costs: 70.43 MUSD Total surface equipment costs: 969.26 MUSD - Exploration costs: 30.00 MUSD Overnight Capital Cost: 1532.78 MUSD Inflation costs during construction: 76.64 MUSD Total CAPEX: 1609.42 MUSD @@ -120,7 +120,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) Maximum Total Electricity Generation: 458.92 MW Average Total Electricity Generation: 458.05 MW @@ -314,6 +313,8 @@ PPA revenue ($) 0 474,179,597 4 Electricity to grid (kWh) 0 3,161,197,316 3,175,786,856 3,180,379,788 3,183,105,655 3,185,018,384 3,186,478,581 3,187,652,210 3,188,628,989 3,189,462,709 3,190,188,061 3,190,828,668 3,191,401,306 3,191,918,303 3,192,388,967 3,192,820,492 3,193,218,548 3,193,587,678 3,193,931,576 3,194,253,285 3,194,540,808 Present value of annual costs ($) 2,121,805,149 + +Present value of annual energy costs ($) 2,121,805,149 Present value of annual energy nominal (kWh) 28,780,754,350 LCOE Levelized cost of energy nominal (cents/kWh) 7.37 diff --git a/tests/examples/example_SAM-single-owner-PPA-3.out b/tests/examples/example_SAM-single-owner-PPA-3.out index 87eefbeab..7f86a1143 100644 --- a/tests/examples/example_SAM-single-owner-PPA-3.out +++ b/tests/examples/example_SAM-single-owner-PPA-3.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.11.18 - Simulation Date: 2026-02-27 - Simulation Time: 13:19 - Calculation Time: 1.206 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-05 + Simulation Time: 07:35 + Calculation Time: 1.219 sec ***SUMMARY OF RESULTS*** @@ -98,6 +98,7 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 3.89 MUSD Drilling and completion costs: 49.18 MUSD Drilling and completion costs per vertical production well: 3.37 MUSD Drilling and completion costs per vertical injection well: 3.37 MUSD @@ -106,10 +107,9 @@ Simulation Metadata Surface power plant costs: 144.44 MUSD Field gathering system costs: 5.80 MUSD Total surface equipment costs: 150.23 MUSD - Exploration costs: 3.89 MUSD + Total Add-on CAPEX: 50.00 MUSD Overnight Capital Cost: 262.36 MUSD Inflation costs during construction: 13.12 MUSD - Total Add-on CAPEX: 50.00 MUSD Total CAPEX: 275.47 MUSD @@ -123,7 +123,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) Maximum Total Electricity Generation: 59.02 MW Average Total Electricity Generation: 58.87 MW @@ -225,7 +224,11 @@ REVENUE PPA price (cents/kWh) 0.0 8.0 8.0 8.32 8.64 8.97 9.29 9.61 9.93 10.25 10.58 10.90 11.22 11.54 11.86 12.19 12.51 12.83 13.15 13.47 13.80 PPA revenue ($) 0 36,751,456 36,964,904 38,519,865 40,051,439 41,573,241 43,089,812 44,603,196 46,114,476 47,624,287 49,133,030 50,640,973 52,148,303 53,655,154 55,161,626 56,667,791 58,173,709 59,679,427 61,184,986 62,690,409 64,195,415 Curtailment payment revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Add-On revenue ($) 0 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 +equals: Capacity payment revenue ($) 0 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 15,000,000 + Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137,736,712 Total revenue ($) 0 51,751,456 51,964,904 53,519,865 55,051,439 56,573,241 58,089,812 59,603,196 61,114,476 62,624,287 64,133,030 65,640,973 67,148,303 68,655,154 70,161,626 71,667,791 73,173,709 74,679,427 76,184,986 77,690,409 216,932,127 @@ -316,6 +319,8 @@ PPA revenue ($) 0 36,751,456 36,9 Electricity to grid (kWh) 0 459,393,200 462,061,296 462,867,882 463,343,815 463,676,568 463,929,931 464,133,155 464,302,013 464,445,938 464,571,006 464,681,345 464,779,886 464,868,777 464,949,642 465,023,726 465,092,011 465,155,313 465,214,308 465,269,475 465,319,040 Present value of annual costs ($) 298,190,011 + +Present value of annual energy costs ($) 298,190,011 Present value of annual energy nominal (kWh) 3,903,105,303 LCOE Levelized cost of energy nominal (cents/kWh) 7.64 diff --git a/tests/examples/example_SAM-single-owner-PPA-4.out b/tests/examples/example_SAM-single-owner-PPA-4.out index f8506fab7..f12a5bc63 100644 --- a/tests/examples/example_SAM-single-owner-PPA-4.out +++ b/tests/examples/example_SAM-single-owner-PPA-4.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.11.18 - Simulation Date: 2026-02-27 - Simulation Time: 13:19 - Calculation Time: 1.238 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-01 + Simulation Time: 09:30 + Calculation Time: 1.226 sec ***SUMMARY OF RESULTS*** @@ -99,6 +99,7 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 3.89 MUSD Drilling and completion costs: 49.18 MUSD Drilling and completion costs per vertical production well: 3.37 MUSD Drilling and completion costs per vertical injection well: 3.37 MUSD @@ -107,7 +108,6 @@ Simulation Metadata Surface power plant costs: 144.44 MUSD Field gathering system costs: 8.50 MUSD Total surface equipment costs: 152.93 MUSD - Exploration costs: 3.89 MUSD Overnight Capital Cost: 215.06 MUSD Inflation costs during construction: 10.75 MUSD Total CAPEX: 225.81 MUSD @@ -123,7 +123,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) Maximum Total Electricity Generation: 59.02 MW Average Total Electricity Generation: 58.87 MW @@ -318,6 +317,8 @@ PPA revenue ($) 0 34,284,397 34,4 Electricity to grid (kWh) 0 428,554,957 431,240,089 432,051,822 432,530,792 432,865,667 433,120,646 433,325,167 433,495,101 433,639,945 433,765,810 433,876,853 433,976,022 434,065,480 434,146,861 434,221,417 434,290,137 434,353,843 434,413,216 434,468,735 434,518,614 Present value of annual costs ($) 254,082,386 + +Present value of annual energy costs ($) 254,082,386 Present value of annual energy nominal (kWh) 3,643,623,190 LCOE Levelized cost of energy nominal (cents/kWh) 6.97 diff --git a/tests/examples/example_SAM-single-owner-PPA-4b.out b/tests/examples/example_SAM-single-owner-PPA-4b.out index 48df23483..08cad77e8 100644 --- a/tests/examples/example_SAM-single-owner-PPA-4b.out +++ b/tests/examples/example_SAM-single-owner-PPA-4b.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.11.23 - Simulation Date: 2026-03-06 - Simulation Time: 10:01 - Calculation Time: 1.291 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-01 + Simulation Time: 09:30 + Calculation Time: 1.299 sec ***SUMMARY OF RESULTS*** @@ -99,6 +99,7 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 3.89 MUSD Drilling and completion costs: 49.18 MUSD Drilling and completion costs per vertical production well: 3.37 MUSD Drilling and completion costs per vertical injection well: 3.37 MUSD @@ -107,7 +108,6 @@ Simulation Metadata Surface power plant costs: 144.44 MUSD Field gathering system costs: 8.50 MUSD Total surface equipment costs: 152.93 MUSD - Exploration costs: 3.89 MUSD Overnight Capital Cost: 215.06 MUSD Inflation costs during construction: 22.23 MUSD Royalty supplemental payments during construction: 2.25 MUSD @@ -125,7 +125,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) Maximum Total Electricity Generation: 59.02 MW Average Total Electricity Generation: 58.87 MW @@ -320,6 +319,8 @@ PPA revenue ($) 0 0 0 Electricity to grid (kWh) 0 0 0 428,554,957 431,240,089 432,051,822 432,530,792 432,865,667 433,120,646 433,325,167 433,495,101 433,639,945 433,765,810 433,876,853 433,976,022 434,065,480 434,146,861 434,221,417 434,290,137 434,353,843 434,413,216 434,468,735 434,518,614 Present value of annual costs ($) 219,312,570 + +Present value of annual energy costs ($) 219,312,570 Present value of annual energy nominal (kWh) 3,002,517,885 LCOE Levelized cost of energy nominal (cents/kWh) 7.30 diff --git a/tests/examples/example_SAM-single-owner-PPA-5.out b/tests/examples/example_SAM-single-owner-PPA-5.out index 0b9d6573b..84ff98183 100644 --- a/tests/examples/example_SAM-single-owner-PPA-5.out +++ b/tests/examples/example_SAM-single-owner-PPA-5.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.11.23 - Simulation Date: 2026-03-06 - Simulation Time: 10:01 - Calculation Time: 1.873 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-01 + Simulation Time: 09:30 + Calculation Time: 1.806 sec ***SUMMARY OF RESULTS*** @@ -99,13 +99,13 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 120.00 MUSD Drilling and completion costs: 106.12 MUSD Drilling and completion costs per well: 3.54 MUSD Stimulation costs: 75.00 MUSD Surface power plant costs: 287.61 MUSD Field gathering system costs: 10.69 MUSD Total surface equipment costs: 298.30 MUSD - Exploration costs: 120.00 MUSD Overnight Capital Cost: 599.42 MUSD Inflation costs during construction: 82.70 MUSD Royalty supplemental payments during construction: 2.10 MUSD @@ -122,7 +122,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) Maximum Total Electricity Generation: 117.52 MW Average Total Electricity Generation: 117.19 MW @@ -336,6 +335,8 @@ PPA revenue ($) 0 0 0 Electricity to grid (kWh) 0 0 0 0 0 0 0 859,490,068 865,758,172 867,671,460 868,803,529 869,596,370 870,200,786 870,686,054 871,089,570 871,433,728 871,732,959 871,997,081 872,233,061 872,446,015 872,639,805 872,817,414 872,981,191 873,133,019 873,274,427 873,406,675 873,530,811 873,647,716 873,758,141 873,862,724 873,962,017 874,056,500 874,146,590 874,232,654 874,315,016 874,393,962 874,466,670 Present value of annual costs ($) 338,609,355 + +Present value of annual energy costs ($) 338,609,355 Present value of annual energy nominal (kWh) 4,330,865,025 LCOE Levelized cost of energy nominal (cents/kWh) 7.82 diff --git a/tests/examples/example_SAM-single-owner-PPA-5_cash-flow.csv b/tests/examples/example_SAM-single-owner-PPA-5_cash-flow.csv index cad5f16dc..5bcaa7bb2 100644 --- a/tests/examples/example_SAM-single-owner-PPA-5_cash-flow.csv +++ b/tests/examples/example_SAM-single-owner-PPA-5_cash-flow.csv @@ -117,6 +117,8 @@ PPA revenue ($),0,0,0,0,0,0,0,68759205,69260654,72207619,75099377,77968011,80824 Electricity to grid (kWh),0,0,0,0,0,0,0,859490068,865758172,867671460,868803529,869596370,870200786,870686054,871089570,871433728,871732959,871997081,872233061,872446015,872639805,872817414,872981191,873133019,873274427,873406675,873530811,873647716,873758141,873862724,873962017,874056500,874146590,874232654,874315016,874393962,874466670 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Present value of annual costs ($),338609355,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Present value of annual energy costs ($),338609355,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Present value of annual energy nominal (kWh),4330865025,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, LCOE Levelized cost of energy nominal (cents/kWh),7.82,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/tests/examples/example_SAM-single-owner-PPA-6_carbon-revenue.out b/tests/examples/example_SAM-single-owner-PPA-6_carbon-revenue.out index 2b96ac61e..1e5e8b1f2 100644 --- a/tests/examples/example_SAM-single-owner-PPA-6_carbon-revenue.out +++ b/tests/examples/example_SAM-single-owner-PPA-6_carbon-revenue.out @@ -5,9 +5,9 @@ Simulation Metadata ---------------------- GEOPHIRES Version: 3.12.1 - Simulation Date: 2026-03-25 - Simulation Time: 11:37 - Calculation Time: 1.789 sec + Simulation Date: 2026-04-04 + Simulation Time: 08:59 + Calculation Time: 1.830 sec ***SUMMARY OF RESULTS*** @@ -132,7 +132,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) Maximum Total Electricity Generation: 59.96 MW Average Total Electricity Generation: 59.75 MW @@ -251,13 +250,20 @@ Electricity to grid (kWh) 0.0 Electricity from grid (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Electricity to grid net (kWh) 0.0 404,102,612 406,703,974 407,497,016 407,966,078 408,293,813 408,516,604 408,285,278 405,141,270 402,559,967 406,408,644 407,366,910 407,901,883 408,271,494 408,539,500 408,526,511 406,603,933.0 401,930,875 406,070,808 407,260,064 407,848,815 408,234,029 408,512,178 408,612,585 407,504,360 402,075,545 405,447,434 407,051,915 407,726,696 408,148,995 408,440,373 +Saved Carbon Production (pound) 0 379,490,699 381,933,624 382,678,366 383,118,860 383,426,634 383,635,856 383,418,619 380,466,097 378,042,009 381,656,282 382,556,185 383,058,575 383,405,674 383,657,358 383,645,160 381,839,677 377,451,232 381,339,021 382,455,846 383,008,739 383,370,492 383,631,700 383,725,992 382,685,263 377,587,091 380,753,614 382,260,374 382,894,058 383,290,636 383,564,268 + REVENUE PPA price (cents/kWh) 0.0 9.50 9.50 9.56 9.61 9.67 9.73 9.79 9.84 9.90 9.96 10.01 10.07 10.13 10.18 10.24 10.30 10.36 10.41 10.47 10.53 10.58 10.64 10.70 10.75 10.81 10.87 10.93 10.98 11.04 11.10 PPA revenue ($) 0 38,389,748 38,636,878 38,944,490 39,221,859 39,486,095 39,740,495 39,950,714 39,874,004 39,849,411 40,462,045 40,789,649 41,075,720 41,345,654 41,605,663 41,837,200 41,872,073 41,619,942 42,280,092 42,636,056 42,930,166 43,203,407 43,465,696 43,709,288 43,823,019 43,468,387 44,064,027 44,470,422 44,776,546 45,055,568 45,320,544 Curtailment payment revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Carbon price ($/lb) 0.0 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 +Carbon credits revenue ($) 0 8,606,704 8,662,109 8,678,999 8,688,990 8,695,970 8,700,715 8,695,788 8,628,826 8,573,849 8,655,819 8,676,228 8,687,622 8,695,494 8,701,203 8,700,926 8,659,978 8,560,450 8,648,624 8,673,953 8,686,492 8,694,696 8,700,621 8,702,759 8,679,156 8,563,531 8,635,347 8,669,519 8,683,891 8,692,885 8,699,091 +equals: Capacity payment revenue ($) 0 8,606,704 8,662,109 8,678,999 8,688,990 8,695,970 8,700,715 8,695,788 8,628,826 8,573,849 8,655,819 8,676,228 8,687,622 8,695,494 8,701,203 8,700,926 8,659,978 8,560,450 8,648,624 8,673,953 8,686,492 8,694,696 8,700,621 8,702,759 8,679,156 8,563,531 8,635,347 8,669,519 8,683,891 8,692,885 8,699,091 + Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137,782,527 -Total revenue ($) 0 46,996,452 47,298,986 47,623,489 47,910,848 48,182,064 48,441,210 48,646,503 48,502,830 48,423,260 49,117,863 49,465,877 49,763,342 50,041,149 50,306,865 50,538,126 50,532,051 50,180,392 50,928,716 51,310,009 51,616,658 51,898,104 52,166,316 52,412,047 52,502,175 52,031,918 52,699,374 53,139,941 53,460,437 53,748,453 191,802,162 +Total revenue ($) 0 46,996,452 47,298,987 47,623,489 47,910,849 48,182,065 48,441,210 48,646,502 48,502,830 48,423,260 49,117,864 49,465,877 49,763,342 50,041,148 50,306,866 50,538,126 50,532,051 50,180,392 50,928,716 51,310,009 51,616,658 51,898,103 52,166,317 52,412,047 52,502,175 52,031,918 52,699,374 53,139,941 53,460,437 53,748,453 191,802,162 Property tax net assessed value ($) 0 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 275,565,055 @@ -271,10 +277,10 @@ Property tax expense ($) 0 Insurance expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Total operating expenses ($) 0 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 15,258,469 -EBITDA ($) 0 31,737,984 32,040,518 32,365,021 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,791 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,583 34,921,923 35,670,247 36,051,540 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,905 37,881,473 38,201,968 38,489,984 176,543,694 +EBITDA ($) 0 31,737,984 32,040,518 32,365,020 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,792 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,582 34,921,924 35,670,248 36,051,541 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,906 37,881,472 38,201,968 38,489,984 176,543,694 OPERATING ACTIVITIES -EBITDA ($) 0 31,737,984 32,040,518 32,365,021 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,791 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,583 34,921,923 35,670,247 36,051,540 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,905 37,881,473 38,201,968 38,489,984 176,543,694 +EBITDA ($) 0 31,737,984 32,040,518 32,365,020 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,792 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,582 34,921,924 35,670,248 36,051,541 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,906 37,881,472 38,201,968 38,489,984 176,543,694 Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 plus PBI if not available for debt service: Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 @@ -282,7 +288,7 @@ State PBI income ($) 0 Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Debt interest payment ($) 0 12,774,441 12,639,206 12,494,504 12,339,673 12,174,004 11,996,738 11,807,063 11,604,111 11,386,953 11,154,593 10,905,969 10,639,940 10,355,290 10,050,714 9,724,817 9,376,108 9,002,989 8,603,752 8,176,569 7,719,482 7,230,400 6,707,082 6,147,131 5,547,984 4,906,897 4,220,933 3,486,952 2,701,592 1,861,258 962,099 -Cash flow from operating activities ($) 0 18,963,543 19,401,312 19,870,517 20,312,707 20,749,592 21,186,004 21,580,971 21,640,250 21,777,838 22,704,802 23,301,440 23,864,933 24,427,390 24,997,683 25,554,840 25,897,475 25,918,934 27,066,495 27,874,971 28,638,707 29,409,235 30,200,766 31,006,448 31,695,722 31,866,553 33,219,972 34,394,521 35,500,376 36,628,727 175,581,595 +Cash flow from operating activities ($) 0 18,963,542 19,401,312 19,870,516 20,312,707 20,749,592 21,186,004 21,580,971 21,640,250 21,777,839 22,704,802 23,301,440 23,864,933 24,427,390 24,997,684 25,554,840 25,897,474 25,918,934 27,066,496 27,874,972 28,638,707 29,409,235 30,200,767 31,006,448 31,695,722 31,866,553 33,219,973 34,394,520 35,500,376 36,628,726 175,581,594 INVESTING ACTIVITIES Total installed cost ($) -275,565,055 @@ -316,29 +322,29 @@ Cash flow from financing activities ($) 275 PROJECT RETURNS Pre-tax Cash Flow: -Cash flow from operating activities ($) 0 18,963,543 19,401,312 19,870,517 20,312,707 20,749,592 21,186,004 21,580,971 21,640,250 21,777,838 22,704,802 23,301,440 23,864,933 24,427,390 24,997,683 25,554,840 25,897,475 25,918,934 27,066,495 27,874,971 28,638,707 29,409,235 30,200,766 31,006,448 31,695,722 31,866,553 33,219,972 34,394,521 35,500,376 36,628,727 175,581,595 +Cash flow from operating activities ($) 0 18,963,542 19,401,312 19,870,516 20,312,707 20,749,592 21,186,004 21,580,971 21,640,250 21,777,839 22,704,802 23,301,440 23,864,933 24,427,390 24,997,684 25,554,840 25,897,474 25,918,934 27,066,496 27,874,972 28,638,707 29,409,235 30,200,767 31,006,448 31,695,722 31,866,553 33,219,973 34,394,520 35,500,376 36,628,726 175,581,594 Cash flow from investing activities ($) -275,565,055 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cash flow from financing activities ($) 275,565,055 -1,931,934 -2,067,170 -2,211,871 -2,366,702 -2,532,372 -2,709,638 -2,899,312 -3,102,264 -3,319,423 -3,551,782 -3,800,407 -4,066,435 -4,351,086 -4,655,662 -4,981,558 -5,330,267 -5,703,386 -6,102,623 -6,529,807 -6,986,893 -7,475,976 -7,999,294 -8,559,244 -9,158,391 -9,799,479 -10,485,442 -11,219,423 -12,004,783 -12,845,118 -13,744,276 -Total pre-tax cash flow ($) 0 17,031,609 17,334,142 17,658,645 17,946,004 18,217,220 18,476,366 18,681,659 18,537,986 18,458,416 19,153,020 19,501,033 19,798,498 20,076,305 20,342,021 20,573,282 20,567,207 20,215,548 20,963,872 21,345,165 21,651,814 21,933,260 22,201,472 22,447,203 22,537,331 22,067,074 22,734,530 23,175,097 23,495,593 23,783,609 161,837,318 +Total pre-tax cash flow ($) 0 17,031,608 17,334,143 17,658,645 17,946,005 18,217,221 18,476,366 18,681,659 18,537,986 18,458,416 19,153,020 19,501,033 19,798,498 20,076,304 20,342,022 20,573,282 20,567,207 20,215,548 20,963,873 21,345,165 21,651,814 21,933,259 22,201,473 22,447,203 22,537,331 22,067,074 22,734,530 23,175,097 23,495,593 23,783,609 161,837,318 Pre-tax Returns: Issuance of equity ($) 93,073,037 -Total pre-tax cash flow ($) 0 17,031,609 17,334,142 17,658,645 17,946,004 18,217,220 18,476,366 18,681,659 18,537,986 18,458,416 19,153,020 19,501,033 19,798,498 20,076,305 20,342,021 20,573,282 20,567,207 20,215,548 20,963,872 21,345,165 21,651,814 21,933,260 22,201,472 22,447,203 22,537,331 22,067,074 22,734,530 23,175,097 23,495,593 23,783,609 161,837,318 -Total pre-tax returns ($) -93,073,037 17,031,609 17,334,142 17,658,645 17,946,004 18,217,220 18,476,366 18,681,659 18,537,986 18,458,416 19,153,020 19,501,033 19,798,498 20,076,305 20,342,021 20,573,282 20,567,207 20,215,548 20,963,872 21,345,165 21,651,814 21,933,260 22,201,472 22,447,203 22,537,331 22,067,074 22,734,530 23,175,097 23,495,593 23,783,609 161,837,318 +Total pre-tax cash flow ($) 0 17,031,608 17,334,143 17,658,645 17,946,005 18,217,221 18,476,366 18,681,659 18,537,986 18,458,416 19,153,020 19,501,033 19,798,498 20,076,304 20,342,022 20,573,282 20,567,207 20,215,548 20,963,873 21,345,165 21,651,814 21,933,259 22,201,473 22,447,203 22,537,331 22,067,074 22,734,530 23,175,097 23,495,593 23,783,609 161,837,318 +Total pre-tax returns ($) -93,073,037 17,031,608 17,334,143 17,658,645 17,946,005 18,217,221 18,476,366 18,681,659 18,537,986 18,458,416 19,153,020 19,501,033 19,798,498 20,076,304 20,342,022 20,573,282 20,567,207 20,215,548 20,963,873 21,345,165 21,651,814 21,933,259 22,201,473 22,447,203 22,537,331 22,067,074 22,734,530 23,175,097 23,495,593 23,783,609 161,837,318 After-tax Returns: -Total pre-tax returns ($) -93,073,037 17,031,609 17,334,142 17,658,645 17,946,004 18,217,220 18,476,366 18,681,659 18,537,986 18,458,416 19,153,020 19,501,033 19,798,498 20,076,305 20,342,021 20,573,282 20,567,207 20,215,548 20,963,872 21,345,165 21,651,814 21,933,260 22,201,472 22,447,203 22,537,331 22,067,074 22,734,530 23,175,097 23,495,593 23,783,609 161,837,318 +Total pre-tax returns ($) -93,073,037 17,031,608 17,334,143 17,658,645 17,946,005 18,217,221 18,476,366 18,681,659 18,537,986 18,458,416 19,153,020 19,501,033 19,798,498 20,076,304 20,342,022 20,573,282 20,567,207 20,215,548 20,963,873 21,345,165 21,651,814 21,933,259 22,201,473 22,447,203 22,537,331 22,067,074 22,734,530 23,175,097 23,495,593 23,783,609 161,837,318 Federal ITC total income ($) 0 82,669,516 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -Federal tax benefit (liability) ($) 0 -2,627,390 -1,541,381 -1,635,431 -1,724,066 -1,811,637 -1,899,114 -1,978,283 -1,990,165 -2,017,744 -2,203,549 -2,323,143 -2,436,092 -2,548,834 -2,663,146 -2,774,825 -2,843,505 -2,847,806 -3,077,829 -3,239,884 -3,392,971 -4,721,177 -6,053,593 -6,215,087 -6,353,249 -6,387,491 -6,658,777 -6,894,210 -7,115,873 -7,342,045 -35,194,453 +Federal tax benefit (liability) ($) 0 -2,627,390 -1,541,381 -1,635,431 -1,724,066 -1,811,637 -1,899,114 -1,978,283 -1,990,165 -2,017,744 -2,203,549 -2,323,142 -2,436,092 -2,548,834 -2,663,146 -2,774,825 -2,843,505 -2,847,806 -3,077,829 -3,239,884 -3,392,971 -4,721,177 -6,053,593 -6,215,087 -6,353,249 -6,387,491 -6,658,777 -6,894,210 -7,115,873 -7,342,045 -35,194,453 State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State tax benefit (liability) ($) 0 -596,404 -349,886 -371,235 -391,354 -411,233 -431,089 -449,060 -451,757 -458,018 -500,195 -527,342 -552,981 -578,572 -604,521 -629,871 -645,461 -646,438 -698,652 -735,437 -770,187 -1,071,683 -1,374,135 -1,410,793 -1,442,155 -1,449,928 -1,511,509 -1,564,951 -1,615,267 -1,666,607 -7,988,963 -Total after-tax returns ($) -93,073,037 96,477,331 15,442,875 15,651,980 15,830,584 15,994,351 16,146,163 16,254,315 16,096,063 15,982,654 16,449,276 16,650,549 16,809,426 16,948,899 17,074,355 17,168,585 17,078,241 16,721,304 17,187,392 17,369,844 17,488,656 16,140,400 14,773,745 14,821,323 14,741,926 14,229,655 14,564,244 14,715,937 14,764,453 14,774,957 118,653,903 +Total after-tax returns ($) -93,073,037 96,477,330 15,442,875 15,651,979 15,830,585 15,994,351 16,146,163 16,254,315 16,096,063 15,982,654 16,449,276 16,650,549 16,809,425 16,948,898 17,074,355 17,168,585 17,078,241 16,721,304 17,187,392 17,369,844 17,488,656 16,140,399 14,773,745 14,821,323 14,741,927 14,229,655 14,564,244 14,715,937 14,764,453 14,774,957 118,653,903 -After-tax net cash flow ($) -19,213,030 -41,436,742 -32,423,264 96,477,331 15,442,875 15,651,980 15,830,584 15,994,351 16,146,163 16,254,315 16,096,063 15,982,654 16,449,276 16,650,549 16,809,426 16,948,899 17,074,355 17,168,585 17,078,241 16,721,304 17,187,392 17,369,844 17,488,656 16,140,400 14,773,745 14,821,323 14,741,926 14,229,655 14,564,244 14,715,937 14,764,453 14,774,957 118,653,903 +After-tax net cash flow ($) -19,213,030 -41,436,742 -32,423,264 96,477,330 15,442,875 15,651,979 15,830,585 15,994,351 16,146,163 16,254,315 16,096,063 15,982,654 16,449,276 16,650,549 16,809,425 16,948,898 17,074,355 17,168,585 17,078,241 16,721,304 17,187,392 17,369,844 17,488,656 16,140,399 14,773,745 14,821,323 14,741,927 14,229,655 14,564,244 14,715,937 14,764,453 14,774,957 118,653,903 After-tax cumulative IRR (%) NaN NaN NaN 1.95 9.58 15.18 19.10 21.82 23.73 25.08 26.03 26.72 27.24 27.63 27.92 28.14 28.31 28.44 28.54 28.61 28.66 28.71 28.74 28.77 28.78 28.80 28.81 28.82 28.82 28.83 28.83 28.83 28.85 -After-tax cumulative NPV ($) -19,213,030 -55,237,461 -79,743,877 -16,348,166 -7,526,019 247,667 7,083,101 13,087,194 18,356,599 22,968,420 26,938,827 30,366,314 33,433,112 36,131,960 38,500,684 40,577,100 42,395,665 43,985,422 45,360,257 46,530,536 47,576,317 48,495,153 49,299,438 49,944,765 50,458,297 50,906,191 51,293,497 51,618,514 51,907,722 52,161,774 52,383,371 52,576,160 53,922,179 +After-tax cumulative NPV ($) -19,213,030 -55,237,461 -79,743,877 -16,348,166 -7,526,019 247,665 7,083,101 13,087,193 18,356,598 22,968,420 26,938,826 30,366,313 33,433,111 36,131,959 38,500,683 40,577,099 42,395,664 43,985,421 45,360,256 46,530,535 47,576,316 48,495,152 49,299,437 49,944,764 50,458,296 50,906,190 51,293,496 51,618,513 51,907,721 52,161,773 52,383,370 52,576,159 53,922,178 AFTER-TAX LCOE AND PPA PRICE Annual costs ($) -19,213,030 -41,436,742 -32,423,264 49,480,878 -31,856,111 -31,971,510 -32,080,264 -32,187,714 -32,295,047 -32,392,187 -32,406,767 -32,440,606 -32,668,588 -32,815,328 -32,953,916 -33,092,250 -33,232,511 -33,369,541 -33,453,810 -33,459,088 -33,741,325 -33,940,165 -34,128,002 -35,757,704 -37,392,571 -37,590,725 -37,760,248 -37,802,263 -38,135,130 -38,424,004 -38,695,984 -38,973,496 64,634,268 @@ -346,6 +352,8 @@ PPA revenue ($) 0 0 0 Electricity to grid (kWh) 0 0 0 404,102,612 406,703,974 407,497,016 407,966,078 408,293,813 408,516,604 408,285,278 405,141,270 402,559,967 406,408,644 407,366,910 407,901,883 408,271,494 408,539,500 408,526,511 406,603,933 401,930,875 406,070,808 407,260,064 407,848,815 408,234,029 408,512,178 408,612,585 407,504,360 402,075,545 405,447,434 407,051,915 407,726,696 408,148,995 408,440,373 Present value of annual costs ($) 186,610,352 + +Present value of annual energy costs ($) 186,610,352 Present value of annual energy nominal (kWh) 2,015,542,933 LCOE Levelized cost of energy nominal (cents/kWh) 9.26 @@ -354,7 +362,7 @@ Present value of annual energy nominal (kWh) 2,015,542,933 LPPA Levelized PPA price nominal (cents/kWh) 9.80 PROJECT STATE INCOME TAXES -EBITDA ($) 0 31,737,984 32,040,518 32,365,021 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,791 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,583 34,921,923 35,670,247 36,051,540 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,905 37,881,473 38,201,968 38,489,984 176,543,694 +EBITDA ($) 0 31,737,984 32,040,518 32,365,020 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,792 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,582 34,921,924 35,670,248 36,051,541 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,906 37,881,472 38,201,968 38,489,984 176,543,694 State taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State taxable IBI income ($) 0 @@ -363,13 +371,13 @@ minus: Debt interest payment ($) 0 12,774,441 12,639,206 12,494,504 12,339,673 12,174,004 11,996,738 11,807,063 11,604,111 11,386,953 11,154,593 10,905,969 10,639,940 10,355,290 10,050,714 9,724,817 9,376,108 9,002,989 8,603,752 8,176,569 7,719,482 7,230,400 6,707,082 6,147,131 5,547,984 4,906,897 4,220,933 3,486,952 2,701,592 1,861,258 962,099 Total state tax depreciation ($) 0 5,855,757 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 5,855,757 0 0 0 0 0 0 0 0 0 equals: -State taxable income ($) 0 13,107,785 7,689,797 8,159,002 8,601,192 9,038,077 9,474,489 9,869,456 9,928,735 10,066,323 10,993,287 11,589,925 12,153,419 12,715,876 13,286,168 13,843,325 14,185,960 14,207,419 15,354,980 16,163,457 16,927,193 23,553,478 30,200,766 31,006,448 31,695,722 31,866,553 33,219,972 34,394,521 35,500,376 36,628,727 175,581,595 +State taxable income ($) 0 13,107,785 7,689,797 8,159,001 8,601,192 9,038,077 9,474,489 9,869,456 9,928,735 10,066,324 10,993,287 11,589,925 12,153,418 12,715,875 13,286,169 13,843,325 14,185,960 14,207,419 15,354,981 16,163,457 16,927,193 23,553,478 30,200,767 31,006,448 31,695,722 31,866,553 33,219,973 34,394,520 35,500,376 36,628,726 175,581,594 State income tax rate (frac) 0.0 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 State tax benefit (liability) ($) 0 -596,404 -349,886 -371,235 -391,354 -411,233 -431,089 -449,060 -451,757 -458,018 -500,195 -527,342 -552,981 -578,572 -604,521 -629,871 -645,461 -646,438 -698,652 -735,437 -770,187 -1,071,683 -1,374,135 -1,410,793 -1,442,155 -1,449,928 -1,511,509 -1,564,951 -1,615,267 -1,666,607 -7,988,963 PROJECT FEDERAL INCOME TAXES -EBITDA ($) 0 31,737,984 32,040,518 32,365,021 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,791 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,583 34,921,923 35,670,247 36,051,540 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,905 37,881,473 38,201,968 38,489,984 176,543,694 +EBITDA ($) 0 31,737,984 32,040,518 32,365,020 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,792 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,582 34,921,924 35,670,248 36,051,541 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,906 37,881,472 38,201,968 38,489,984 176,543,694 Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 State tax benefit (liability) ($) 0 -596,404 -349,886 -371,235 -391,354 -411,233 -431,089 -449,060 -451,757 -458,018 -500,195 -527,342 -552,981 -578,572 -604,521 -629,871 -645,461 -646,438 -698,652 -735,437 -770,187 -1,071,683 -1,374,135 -1,410,793 -1,442,155 -1,449,928 -1,511,509 -1,564,951 -1,615,267 -1,666,607 -7,988,963 State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 @@ -381,10 +389,10 @@ minus: Debt interest payment ($) 0 12,774,441 12,639,206 12,494,504 12,339,673 12,174,004 11,996,738 11,807,063 11,604,111 11,386,953 11,154,593 10,905,969 10,639,940 10,355,290 10,050,714 9,724,817 9,376,108 9,002,989 8,603,752 8,176,569 7,719,482 7,230,400 6,707,082 6,147,131 5,547,984 4,906,897 4,220,933 3,486,952 2,701,592 1,861,258 962,099 Total federal tax depreciation ($) 0 5,855,757 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 11,711,515 5,855,757 0 0 0 0 0 0 0 0 0 equals: -Federal taxable income ($) 0 12,511,381 7,339,911 7,787,767 8,209,838 8,626,845 9,043,400 9,420,396 9,476,978 9,608,306 10,493,092 11,062,584 11,600,438 12,137,303 12,681,648 13,213,454 13,540,499 13,560,982 14,656,329 15,428,019 16,157,005 22,481,795 28,826,631 29,595,654 30,253,567 30,416,625 31,708,464 32,829,570 33,885,109 34,962,120 167,592,632 +Federal taxable income ($) 0 12,511,381 7,339,912 7,787,767 8,209,838 8,626,845 9,043,400 9,420,396 9,476,978 9,608,306 10,493,092 11,062,583 11,600,438 12,137,303 12,681,648 13,213,454 13,540,498 13,560,982 14,656,329 15,428,020 16,157,005 22,481,794 28,826,632 29,595,654 30,253,567 30,416,625 31,708,464 32,829,570 33,885,109 34,962,119 167,592,632 Federal income tax rate (frac) 0.0 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 -Federal tax benefit (liability) ($) 0 -2,627,390 -1,541,381 -1,635,431 -1,724,066 -1,811,637 -1,899,114 -1,978,283 -1,990,165 -2,017,744 -2,203,549 -2,323,143 -2,436,092 -2,548,834 -2,663,146 -2,774,825 -2,843,505 -2,847,806 -3,077,829 -3,239,884 -3,392,971 -4,721,177 -6,053,593 -6,215,087 -6,353,249 -6,387,491 -6,658,777 -6,894,210 -7,115,873 -7,342,045 -35,194,453 +Federal tax benefit (liability) ($) 0 -2,627,390 -1,541,381 -1,635,431 -1,724,066 -1,811,637 -1,899,114 -1,978,283 -1,990,165 -2,017,744 -2,203,549 -2,323,142 -2,436,092 -2,548,834 -2,663,146 -2,774,825 -2,843,505 -2,847,806 -3,077,829 -3,239,884 -3,392,971 -4,721,177 -6,053,593 -6,215,087 -6,353,249 -6,387,491 -6,658,777 -6,894,210 -7,115,873 -7,342,045 -35,194,453 CASH INCENTIVES Federal IBI income ($) 0 @@ -424,14 +432,14 @@ Debt principal payment ($) 0 Debt total payment ($) 0 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 DSCR (DEBT FRACTION) -EBITDA ($) 0 31,737,984 32,040,518 32,365,021 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,791 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,583 34,921,923 35,670,247 36,051,540 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,905 37,881,473 38,201,968 38,489,984 176,543,694 +EBITDA ($) 0 31,737,984 32,040,518 32,365,020 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,792 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,582 34,921,924 35,670,248 36,051,541 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,906 37,881,472 38,201,968 38,489,984 176,543,694 minus: Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 equals: -Cash available for debt service (CAFDS) ($) 0 31,737,984 32,040,518 32,365,021 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,791 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,583 34,921,923 35,670,247 36,051,540 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,905 37,881,473 38,201,968 38,489,984 176,543,694 +Cash available for debt service (CAFDS) ($) 0 31,737,984 32,040,518 32,365,020 32,652,380 32,923,596 33,182,742 33,388,034 33,244,361 33,164,792 33,859,395 34,207,408 34,504,873 34,782,680 35,048,397 35,279,657 35,273,582 34,921,924 35,670,248 36,051,541 36,358,190 36,639,635 36,907,848 37,153,579 37,243,706 36,773,450 37,440,906 37,881,472 38,201,968 38,489,984 176,543,694 Debt total payment ($) 0 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 14,706,375 DSCR (pre-tax) 0.0 2.16 2.18 2.20 2.22 2.24 2.26 2.27 2.26 2.26 2.30 2.33 2.35 2.37 2.38 2.40 2.40 2.37 2.43 2.45 2.47 2.49 2.51 2.53 2.53 2.50 2.55 2.58 2.60 2.62 12.0 diff --git a/tests/examples/example_SAM-single-owner-PPA-7_chp.out b/tests/examples/example_SAM-single-owner-PPA-7_chp.out new file mode 100644 index 000000000..84d1090f8 --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-7_chp.out @@ -0,0 +1,487 @@ + ***************** + ***CASE REPORT*** + ***************** + +Simulation Metadata +---------------------- + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-07 + Simulation Time: 10:14 + Calculation Time: 1.793 sec + + ***SUMMARY OF RESULTS*** + + End-Use Option: Cogeneration Topping Cycle, Heat sales considered as extra income + Average Net Electricity Production: 45.52 MW + Average Direct-Use Heat Production: 62.20 MW + Electricity breakeven price: 9.07 cents/kWh + Direct-Use heat breakeven price (LCOH): 3.28 USD/MMBTU + Total CAPEX: 283.80 MUSD + Electricity CAPEX ($/kWe): 5304 USD/kW + Heat CAPEX ($/kWth): 658 USD/kW + Number of production wells: 6 + Number of injection wells: 4 + Flowrate per production well: 100.0 kg/sec + Well depth: 2.7 kilometer + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***ECONOMIC PARAMETERS*** + + Economic Model = SAM Single Owner PPA + Real Discount Rate: 12.00 % + Nominal Discount Rate: 15.02 % + WACC: 8.57 % + Investment Tax Credit: 85.14 MUSD + Project lifetime: 30 yr + Capacity factor: 90.0 % + Project NPV: 46.59 MUSD + After-tax IRR: 27.05 % + Project VIR=PI=PIR: 1.57 + Project MOIC: 5.49 + Project Payback Period: 3.98 yr + CHP: Percent cost allocation for electrical plant: 85.55 % + + ***ENGINEERING PARAMETERS*** + + Number of Production Wells: 6 + Number of Injection Wells: 4 + Well depth: 2.7 kilometer + Water loss rate: 1.0 % + Pump efficiency: 80.0 % + Injection temperature: 50.5 degC + Production Wellbore heat transmission calculated with Ramey's model + Average production well temperature drop: 0.3 degC + Flowrate per production well: 100.0 kg/sec + Injection well casing ID: 8.535 in + Production well casing ID: 8.535 in + Number of times redrilling: 3 + Power plant type: Subcritical ORC + + + ***RESOURCE CHARACTERISTICS*** + + Maximum reservoir temperature: 500.0 degC + Number of segments: 3 + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***RESERVOIR PARAMETERS*** + + Reservoir Model = Multiple Parallel Fractures Model (Gringarten) + Bottom-hole temperature: 205.38 degC + Fracture model = Rectangular + Well separation: fracture height: 100.00 meter + Fracture width: 305.00 meter + Fracture area: 30500.00 m**2 + Reservoir volume calculated with fracture separation and number of fractures as input + Number of fractures: 1500 + Fracture separation: 9.83 meter + Reservoir volume: 449216947 m**3 + Reservoir hydrostatic pressure: 25324.54 kPa + Plant outlet pressure: 13789.51 kPa + Production wellhead pressure: 2089.11 kPa + Productivity Index: 1.13 kg/sec/bar + Injectivity Index: 1.38 kg/sec/bar + Reservoir density: 2800.00 kg/m**3 + Reservoir thermal conductivity: 3.05 W/m/K + Reservoir heat capacity: 790.00 J/kg/K + + + ***RESERVOIR SIMULATION RESULTS*** + + Maximum Production Temperature: 203.1 degC + Average Production Temperature: 202.8 degC + Minimum Production Temperature: 201.3 degC + Initial Production Temperature: 201.6 degC + Average Reservoir Heat Extraction: 382.08 MW + Production Wellbore Heat Transmission Model = Ramey Model + Average Production Well Temperature Drop: 0.3 degC + Average Injection Well Pump Pressure Drop: -2003.9 kPa + Average Production Well Pump Pressure Drop: 9514.2 kPa + + + ***CAPITAL COSTS (M$)*** + + Exploration costs: 4.71 MUSD + Drilling and completion costs: 46.49 MUSD + Drilling and completion costs per well: 4.65 MUSD + Stimulation costs: 48.30 MUSD + Surface power plant costs: 154.20 MUSD + of which Electrical Plant Cost: 131.92 MUSD + of which Heat Plant Cost: 22.28 MUSD + Field gathering system costs: 3.20 MUSD + Total surface equipment costs: 157.40 MUSD + Overnight Capital Cost: 256.90 MUSD + Inflation costs during construction: 16.45 MUSD + Interest during construction: 10.46 MUSD + Total CAPEX: 283.80 MUSD + + + ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** + + Wellfield maintenance costs: 1.12 MUSD/yr + Power plant maintenance costs: 4.17 MUSD/yr + Water costs: 0.16 MUSD/yr + Redrilling costs: 9.48 MUSD/yr + Total operating and maintenance costs: 14.92 MUSD/yr + + + ***SURFACE EQUIPMENT SIMULATION RESULTS*** + Initial geofluid availability: 0.19 MW/(kg/s) + Maximum Total Electricity Generation: 53.91 MW + Average Total Electricity Generation: 53.66 MW + Minimum Total Electricity Generation: 52.44 MW + Initial Total Electricity Generation: 52.69 MW + Maximum Net Electricity Generation: 45.77 MW + Average Net Electricity Generation: 45.52 MW + Minimum Net Electricity Generation: 44.27 MW + Initial Net Electricity Generation: 44.54 MW + Average Annual Total Electricity Generation: 423.07 GWh + Average Annual Net Electricity Generation: 358.89 GWh + Initial pumping power/net installed power: 18.30 % + Maximum Net Heat Production: 62.26 MW + Average Net Heat Production: 62.20 MW + Minimum Net Heat Production: 61.90 MW + Initial Net Heat Production: 61.96 MW + Average Annual Heat Production: 490.38 GWh + Average Pumping Power: 8.14 MW + Heat to Power Conversion Efficiency: 14.54 % + + ************************************************************ + * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ************************************************************ + YEAR THERMAL GEOFLUID PUMP NET NET FIRST LAW + DRAWDOWN TEMPERATURE POWER POWER HEAT EFFICIENCY + (deg C) (MW) (MW) (MW) (%) + 0 1.0000 201.64 8.1512 44.5358 61.9595 14.3548 + 1 1.0052 202.70 8.1476 45.4006 62.1721 14.5209 + 2 1.0062 202.89 8.1469 45.5621 62.2116 14.5518 + 3 1.0067 202.99 8.1466 45.6463 62.2321 14.5679 + 4 1.0070 203.06 8.1464 45.7020 62.2457 14.5785 + 5 1.0073 203.11 8.1462 45.7427 62.2556 14.5863 + 6 1.0074 203.13 8.1463 45.7617 62.2603 14.5899 + 7 1.0066 202.97 8.1489 45.6249 62.2274 14.5635 + 8 1.0007 201.78 8.1656 44.6309 61.9867 14.3712 + 9 1.0048 202.61 8.1453 45.3285 62.1538 14.5075 + 10 1.0060 202.86 8.1444 45.5355 62.2044 14.5471 + 11 1.0066 202.97 8.1428 45.6327 62.2279 14.5658 + 12 1.0070 203.05 8.1408 45.6954 62.2427 14.5780 + 13 1.0072 203.10 8.1387 45.7412 62.2534 14.5870 + 14 1.0074 203.13 8.1370 45.7708 62.2602 14.5928 + 15 1.0070 203.06 8.1373 45.7058 62.2444 14.5804 + 16 1.0031 202.27 8.1479 45.0504 62.0860 14.4540 + 17 1.0041 202.47 8.1345 45.2256 62.1259 14.4892 + 18 1.0058 202.82 8.1344 45.5108 62.1959 14.5436 + 19 1.0065 202.95 8.1343 45.6217 62.2231 14.5648 + 20 1.0069 203.03 8.1343 45.6887 62.2395 14.5775 + 21 1.0072 203.09 8.1343 45.7358 62.2510 14.5865 + 22 1.0074 203.13 8.1344 45.7692 62.2592 14.5928 + 23 1.0072 203.10 8.1353 45.7465 62.2539 14.5884 + 24 1.0048 202.61 8.1426 45.3324 62.1541 14.5086 + 25 1.0027 202.20 8.1344 45.0033 62.0710 14.4467 + 26 1.0056 202.76 8.1344 45.4682 62.1855 14.5355 + 27 1.0063 202.92 8.1344 45.5997 62.2177 14.5606 + 28 1.0068 203.01 8.1344 45.6742 62.2360 14.5748 + 29 1.0071 203.08 8.1344 45.7252 62.2485 14.5845 + + + ******************************************************************* + * ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ******************************************************************* + YEAR HEAT ELECTRICITY HEAT RESERVOIR PERCENTAGE OF + PROVIDED PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED + (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%) + 1 489.6 355.7 3002.77 143.09 7.02 + 2 490.3 358.7 3011.81 132.25 14.07 + 3 490.6 359.6 3014.56 121.39 21.12 + 4 490.7 360.1 3016.19 110.54 28.18 + 5 490.8 360.5 3017.33 99.67 35.23 + 6 490.8 360.7 3018.10 88.81 42.29 + 7 490.8 360.5 3017.30 77.95 49.35 + 8 489.9 356.8 3006.30 67.12 56.38 + 9 489.2 353.9 2997.27 56.33 63.40 + 10 490.3 358.3 3010.72 45.49 70.44 + 11 490.5 359.4 3014.03 34.64 77.49 + 12 490.7 360.0 3015.84 23.79 84.54 + 13 490.8 360.5 3017.08 12.93 91.60 + 14 490.8 360.8 3017.96 2.06 98.66 + 15 490.8 360.7 3017.88 -8.80 105.72 + 16 490.3 358.5 3011.14 -19.64 112.76 + 17 489.0 353.1 2994.77 -30.42 119.77 + 18 490.1 357.9 3009.26 -41.26 126.81 + 19 490.5 359.3 3013.41 -52.11 133.86 + 20 490.6 360.0 3015.46 -62.96 140.91 + 21 490.7 360.4 3016.81 -73.82 147.97 + 22 490.8 360.7 3017.78 -84.69 155.03 + 23 490.9 360.8 3018.13 -95.55 162.09 + 24 490.5 359.5 3014.27 -106.40 169.14 + 25 489.0 353.3 2995.26 -117.19 176.14 + 26 490.0 357.2 3007.08 -128.01 183.18 + 27 490.4 359.1 3012.68 -138.86 190.23 + 28 490.6 359.8 3015.04 -149.71 197.28 + 29 490.7 360.3 3016.51 -160.57 204.33 + 30 490.8 360.6 3017.53 -171.43 211.39 + + *************************** + * SAM CASH FLOW PROFILE * + *************************** +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + Year -2 Year -1 Year 0 Year 1 Year 2 Year 3 Year 4 Year 5 Year 6 Year 7 Year 8 Year 9 Year 10 Year 11 Year 12 Year 13 Year 14 Year 15 Year 16 Year 17 Year 18 Year 19 Year 20 Year 21 Year 22 Year 23 Year 24 Year 25 Year 26 Year 27 Year 28 Year 29 Year 30 +CONSTRUCTION +Capital expenditure schedule [construction] (%) 7.50 52.50 40.0 +Overnight capital expenditure [construction] ($) -19,267,186 -134,870,303 -102,758,326 +plus: +Inflation cost [construction] ($) -520,214 -7,381,317 -8,550,179 +plus: +Royalty supplemental payments [construction] ($) 0 0 0 +equals: +Nominal capital expenditure [construction] ($) -19,787,400 -142,251,620 -111,308,506 + +Issuance of equity [construction] ($) 19,787,400 42,675,486 33,392,552 +Issuance of debt [construction] ($) 0 99,576,134 77,915,954 +Debt balance [construction] ($) 0 99,576,134 187,947,582 +Debt interest payment [construction] ($) 0 0 10,455,494 + +Installed cost [construction] ($) -19,787,400 -142,251,620 -121,764,000 +After-tax net cash flow [construction] ($) -19,787,400 -42,675,486 -33,392,552 + +ENERGY +Electricity to grid (kWh) 0.0 355,731,851 358,699,992 359,607,495 360,144,710 360,520,252 360,775,349 360,502,913 356,836,528 353,926,807.0 358,359,695 359,455,496 360,066,943 360,488,977 360,794,715 360,775,190 358,530,827 353,165,503 357,965,313 359,325,916 360,000,341 360,441,906 360,760,853 360,874,419 359,580,200 353,308,448 357,253,043 359,087,573 359,860,409 360,344,429 360,678,540 +Electricity from grid (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +Electricity to grid net (kWh) 0.0 355,731,851 358,699,992 359,607,495 360,144,710 360,520,252 360,775,349 360,502,913 356,836,528 353,926,807.0 358,359,695 359,455,496 360,066,943 360,488,977 360,794,715 360,775,190 358,530,827 353,165,503 357,965,313 359,325,916 360,000,341 360,441,906 360,760,853 360,874,419 359,580,200 353,308,448 357,253,043 359,087,573 359,860,409 360,344,429 360,678,540 + +Heat provided (kWh) 0 489,614,562 490,342,076 490,563,599 490,694,580 490,786,078 490,848,296 490,783,461 489,898,726 489,171,820 490,254,084 490,520,388 490,666,584 490,765,776 490,836,812 490,830,234 490,288,258 488,970,947 490,137,018 490,470,680 490,635,823 490,743,886 490,821,935 490,850,303 490,539,597 489,010,601 489,961,766 490,412,356 490,601,741 490,720,237 490,801,992 + +REVENUE +PPA price (cents/kWh) 0.0 9.50 9.50 9.56 9.61 9.67 9.73 9.79 9.84 9.90 9.96 10.01 10.07 10.13 10.18 10.24 10.30 10.36 10.41 10.47 10.53 10.58 10.64 10.70 10.75 10.81 10.87 10.93 10.98 11.04 11.10 +PPA revenue ($) 0 33,794,526 34,076,499 34,367,688 34,624,312 34,865,914 35,096,226 35,275,210 35,119,851 35,035,215 35,678,291 35,992,279 36,258,741 36,506,719 36,743,334 36,946,987 36,921,505 36,570,288 37,271,348 37,617,830 37,893,636 38,145,567 38,384,955 38,602,737 38,669,255 38,196,176 38,826,261 39,230,317 39,519,870 39,778,422 40,020,891 +Curtailment payment revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Heat price ($/kWh) 0.0 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 +Heat revenue ($) 0 12,240,364 12,258,552 12,264,090 12,267,364 12,269,652 12,271,207 12,269,587 12,247,468 12,229,296 12,256,352 12,263,010 12,266,665 12,269,144 12,270,920 12,270,756 12,257,206 12,224,274 12,253,425 12,261,767 12,265,896 12,268,597 12,270,548 12,271,258 12,263,490 12,225,265 12,249,044 12,260,309 12,265,044 12,268,006 12,270,050 +equals: +Capacity payment revenue ($) 0 12,240,364 12,258,552 12,264,090 12,267,364 12,269,652 12,271,207 12,269,587 12,247,468 12,229,296 12,256,352 12,263,010 12,266,665 12,269,144 12,270,920 12,270,756 12,257,206 12,224,274 12,253,425 12,261,767 12,265,896 12,268,597 12,270,548 12,271,258 12,263,490 12,225,265 12,249,044 12,260,309 12,265,044 12,268,006 12,270,050 + +Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141,901,510 +Total revenue ($) 0 46,034,890 46,335,051 46,631,778 46,891,676 47,135,566 47,367,433 47,544,797 47,367,319 47,264,511 47,934,643 48,255,289 48,525,406 48,775,863 49,014,254 49,217,743 49,178,711 48,794,562 49,524,773 49,879,597 50,159,532 50,414,164 50,655,503 50,873,995 50,932,745 50,421,441 51,075,305 51,490,626 51,784,914 52,046,428 194,192,451 + +Property tax net assessed value ($) 0 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 + +OPERATING EXPENSES +O&M fixed expense ($) 0 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 +O&M production-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +O&M capacity-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Fuel expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Electricity purchase ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Property tax expense ($) 0 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 +Insurance expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total operating expenses ($) 0 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 + +EBITDA ($) 0 30,488,084 30,788,245 31,084,972 31,344,870 31,588,759 31,820,627 31,997,991 31,820,513 31,717,704 32,387,837 32,708,483 32,978,600 33,229,056 33,467,447 33,670,937 33,631,904 33,247,755 33,977,967 34,332,791 34,612,726 34,867,358 35,108,696 35,327,188 35,385,938 34,874,635 35,528,498 35,943,820 36,238,108 36,499,621 178,645,645 + +OPERATING ACTIVITIES +EBITDA ($) 0 30,488,084 30,788,245 31,084,972 31,344,870 31,588,759 31,820,627 31,997,991 31,820,513 31,717,704 32,387,837 32,708,483 32,978,600 33,229,056 33,467,447 33,670,937 33,631,904 33,247,755 33,977,967 34,332,791 34,612,726 34,867,358 35,108,696 35,327,188 35,385,938 34,874,635 35,528,498 35,943,820 36,238,108 36,499,621 178,645,645 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +plus PBI if not available for debt service: +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Debt interest payment ($) 0 13,156,331 13,017,053 12,868,025 12,708,565 12,537,943 12,355,378 12,160,033 11,951,014 11,727,364 11,488,058 11,232,000 10,958,019 10,664,859 10,351,178 10,015,539 9,656,405 9,272,132 8,860,960 8,421,006 7,950,255 7,446,551 6,907,589 6,330,898 5,713,840 5,053,587 4,347,117 3,591,194 2,782,356 1,916,900 990,861 +Cash flow from operating activities ($) 0 17,331,753 17,771,192 18,216,947 18,636,305 19,050,816 19,465,249 19,837,958 19,869,499 19,990,341 20,899,779 21,476,482 22,020,581 22,564,197 23,116,270 23,655,398 23,975,499 23,975,623 25,117,007 25,911,785 26,662,471 27,420,806 28,201,108 28,996,290 29,672,099 29,821,048 31,181,381 32,352,626 33,455,752 34,582,722 177,654,784 + +INVESTING ACTIVITIES +Total installed cost ($) -283,803,020 +Debt closing costs ($) 0 +Debt up-front fee ($) 0 +minus: +Total IBI income ($) 0 +Total CBI income ($) 0 +equals: +Purchase of property ($) -283,803,020 +plus: +Reserve (increase)/decrease debt service ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease working capital ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease receivables ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash flow from investing activities ($) -283,803,020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +FINANCING ACTIVITIES +Issuance of equity ($) 95,855,438 +Size of debt ($) 187,947,582 +minus: +Debt principal payment ($) 0 1,989,689 2,128,967 2,277,995 2,437,455 2,608,076 2,790,642 2,985,987 3,195,006 3,418,656 3,657,962 3,914,019 4,188,001 4,481,161 4,794,842 5,130,481 5,489,615 5,873,888 6,285,060 6,725,014 7,195,765 7,699,468 8,238,431 8,815,121 9,432,180 10,092,432 10,798,903 11,554,826 12,363,664 13,229,120 14,155,159 +equals: +Cash flow from financing activities ($) 283,803,020 -1,989,689 -2,128,967 -2,277,995 -2,437,455 -2,608,076 -2,790,642 -2,985,987 -3,195,006 -3,418,656 -3,657,962 -3,914,019 -4,188,001 -4,481,161 -4,794,842 -5,130,481 -5,489,615 -5,873,888 -6,285,060 -6,725,014 -7,195,765 -7,699,468 -8,238,431 -8,815,121 -9,432,180 -10,092,432 -10,798,903 -11,554,826 -12,363,664 -13,229,120 -14,155,159 + +PROJECT RETURNS +Pre-tax Cash Flow: +Cash flow from operating activities ($) 0 17,331,753 17,771,192 18,216,947 18,636,305 19,050,816 19,465,249 19,837,958 19,869,499 19,990,341 20,899,779 21,476,482 22,020,581 22,564,197 23,116,270 23,655,398 23,975,499 23,975,623 25,117,007 25,911,785 26,662,471 27,420,806 28,201,108 28,996,290 29,672,099 29,821,048 31,181,381 32,352,626 33,455,752 34,582,722 177,654,784 +Cash flow from investing activities ($) -283,803,020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Cash flow from financing activities ($) 283,803,020 -1,989,689 -2,128,967 -2,277,995 -2,437,455 -2,608,076 -2,790,642 -2,985,987 -3,195,006 -3,418,656 -3,657,962 -3,914,019 -4,188,001 -4,481,161 -4,794,842 -5,130,481 -5,489,615 -5,873,888 -6,285,060 -6,725,014 -7,195,765 -7,699,468 -8,238,431 -8,815,121 -9,432,180 -10,092,432 -10,798,903 -11,554,826 -12,363,664 -13,229,120 -14,155,159 +Total pre-tax cash flow ($) 0 15,342,064 15,642,225 15,938,952 16,198,850 16,442,740 16,674,607 16,851,971 16,674,493 16,571,685 17,241,817 17,562,463 17,832,580 18,083,037 18,321,428 18,524,917 18,485,885 18,101,736 18,831,947 19,186,771 19,466,706 19,721,338 19,962,677 20,181,169 20,239,919 19,728,615 20,382,479 20,797,800 21,092,088 21,353,601 163,499,625 + +Pre-tax Returns: +Issuance of equity ($) 95,855,438 +Total pre-tax cash flow ($) 0 15,342,064 15,642,225 15,938,952 16,198,850 16,442,740 16,674,607 16,851,971 16,674,493 16,571,685 17,241,817 17,562,463 17,832,580 18,083,037 18,321,428 18,524,917 18,485,885 18,101,736 18,831,947 19,186,771 19,466,706 19,721,338 19,962,677 20,181,169 20,239,919 19,728,615 20,382,479 20,797,800 21,092,088 21,353,601 163,499,625 +Total pre-tax returns ($) -95,855,438 15,342,064 15,642,225 15,938,952 16,198,850 16,442,740 16,674,607 16,851,971 16,674,493 16,571,685 17,241,817 17,562,463 17,832,580 18,083,037 18,321,428 18,524,917 18,485,885 18,101,736 18,831,947 19,186,771 19,466,706 19,721,338 19,962,677 20,181,169 20,239,919 19,728,615 20,382,479 20,797,800 21,092,088 21,353,601 163,499,625 + +After-tax Returns: +Total pre-tax returns ($) -95,855,438 15,342,064 15,642,225 15,938,952 16,198,850 16,442,740 16,674,607 16,851,971 16,674,493 16,571,685 17,241,817 17,562,463 17,832,580 18,083,037 18,321,428 18,524,917 18,485,885 18,101,736 18,831,947 19,186,771 19,466,706 19,721,338 19,962,677 20,181,169 20,239,919 19,728,615 20,382,479 20,797,800 21,092,088 21,353,601 163,499,625 +Federal ITC total income ($) 0 85,140,906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal tax benefit (liability) ($) 0 -2,265,217 -1,144,454 -1,233,803 -1,317,861 -1,400,948 -1,484,019 -1,558,726 -1,565,049 -1,589,271 -1,771,563 -1,887,160 -1,996,222 -2,105,187 -2,215,848 -2,323,913 -2,388,076 -2,388,101 -2,616,885 -2,776,195 -2,926,666 -4,287,517 -5,652,771 -5,812,161 -5,947,624 -5,977,480 -6,250,152 -6,484,922 -6,706,038 -6,931,934 -35,610,013 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -514,193 -259,785 -280,067 -299,148 -318,008 -336,865 -353,823 -355,258 -360,756 -402,136 -428,376 -453,132 -477,867 -502,986 -527,517 -542,081 -542,087 -594,020 -630,182 -664,338 -973,245 -1,283,150 -1,319,331 -1,350,080 -1,356,858 -1,418,753 -1,472,044 -1,522,237 -1,573,514 -8,083,293 +Total after-tax returns ($) -95,855,438 97,703,561 14,237,986 14,425,082 14,581,842 14,723,784 14,853,724 14,939,422 14,754,186 14,621,657 15,068,118 15,246,927 15,383,226 15,499,982 15,602,594 15,673,487 15,555,728 15,171,548 15,621,042 15,780,394 15,875,702 14,460,576 13,026,755 13,049,676 12,942,214 12,394,278 12,713,574 12,840,834 12,863,813 12,848,154 119,806,319 + +After-tax net cash flow ($) -19,787,400 -42,675,486 -33,392,552 97,703,561 14,237,986 14,425,082 14,581,842 14,723,784 14,853,724 14,939,422 14,754,186 14,621,657 15,068,118 15,246,927 15,383,226 15,499,982 15,602,594 15,673,487 15,555,728 15,171,548 15,621,042 15,780,394 15,875,702 14,460,576 13,026,755 13,049,676 12,942,214 12,394,278 12,713,574 12,840,834 12,863,813 12,848,154 119,806,319 +After-tax cumulative IRR (%) NaN NaN NaN 1.03 8.06 13.35 17.13 19.80 21.70 23.06 24.04 24.75 25.29 25.70 26.01 26.25 26.44 26.58 26.68 26.76 26.83 26.88 26.92 26.95 26.97 26.98 27.00 27.01 27.01 27.02 27.02 27.03 27.05 +After-tax cumulative NPV ($) -19,787,400 -56,888,775 -82,127,806 -17,926,333 -9,792,511 -2,628,174 3,668,070 9,195,206 14,042,816 18,281,564 21,920,971 25,056,591 27,865,886 30,337,225 32,504,973 34,403,883 36,065,693 37,517,008 38,769,278 39,831,093 40,781,568 41,616,325 42,346,432 42,924,596 43,377,403 43,771,759 44,111,782 44,394,877 44,647,336 44,869,016 45,062,087 45,229,735 46,588,827 + +AFTER-TAX LCOE AND PPA PRICE +Annual costs ($) -19,787,400 -42,675,486 -33,392,552 51,668,671 -32,097,065 -32,206,696 -32,309,835 -32,411,782 -32,513,709 -32,605,375 -32,613,133 -32,642,853 -32,866,525 -33,008,362 -33,142,181 -33,275,880 -33,411,660 -33,544,256 -33,622,983 -33,623,014 -33,903,731 -34,099,203 -34,283,830 -35,953,588 -37,628,748 -37,824,319 -37,990,530 -38,027,164 -38,361,731 -38,649,793 -38,921,101 -39,198,274 67,515,378 +PPA revenue ($) 0 0 0 33,794,526 34,076,499 34,367,688 34,624,312 34,865,914 35,096,226 35,275,210 35,119,851 35,035,215 35,678,291 35,992,279 36,258,741 36,506,719 36,743,334 36,946,987 36,921,505 36,570,288 37,271,348 37,617,830 37,893,636 38,145,567 38,384,955 38,602,737 38,669,255 38,196,176 38,826,261 39,230,317 39,519,870 39,778,422 40,020,891 +Electricity to grid (kWh) 0 0 0 355,731,851 358,699,992 359,607,495 360,144,710 360,520,252 360,775,349 360,502,913 356,836,528 353,926,807 358,359,695 359,455,496 360,066,943 360,488,977 360,794,715 360,775,190 358,530,827 353,165,503 357,965,313 359,325,916 360,000,341 360,441,906 360,760,853 360,874,419 359,580,200 353,308,448 357,253,043 359,087,573 359,860,409 360,344,429 360,678,540 + +Present value of annual costs ($) 188,439,837 + +Present value of annual energy costs ($) 161,218,291 +Present value of annual energy nominal (kWh) 1,777,658,214 +LCOE Levelized cost of energy nominal (cents/kWh) 9.07 + +Present value of PPA revenue ($) 174,283,198 +Present value of annual energy nominal (kWh) 1,777,658,214 +LPPA Levelized PPA price nominal (cents/kWh) 9.80 + +Present value of annual heat costs ($) 27,221,546 +Present value of annual heat provided (MMBTU) 8,290,884 +LCOH Levelized cost of heating nominal ($/MMBTU) 3.28 + +PROJECT STATE INCOME TAXES +EBITDA ($) 0 30,488,084 30,788,245 31,084,972 31,344,870 31,588,759 31,820,627 31,997,991 31,820,513 31,717,704 32,387,837 32,708,483 32,978,600 33,229,056 33,467,447 33,670,937 33,631,904 33,247,755 33,977,967 34,332,791 34,612,726 34,867,358 35,108,696 35,327,188 35,385,938 34,874,635 35,528,498 35,943,820 36,238,108 36,499,621 178,645,645 +State taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State taxable IBI income ($) 0 +State taxable CBI income ($) 0 +minus: +Debt interest payment ($) 0 13,156,331 13,017,053 12,868,025 12,708,565 12,537,943 12,355,378 12,160,033 11,951,014 11,727,364 11,488,058 11,232,000 10,958,019 10,664,859 10,351,178 10,015,539 9,656,405 9,272,132 8,860,960 8,421,006 7,950,255 7,446,551 6,907,589 6,330,898 5,713,840 5,053,587 4,347,117 3,591,194 2,782,356 1,916,900 990,861 +Total state tax depreciation ($) 0 6,030,814 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 6,030,814 0 0 0 0 0 0 0 0 0 +equals: +State taxable income ($) 0 11,300,939 5,709,564 6,155,319 6,574,676 6,989,188 7,403,620 7,776,329 7,807,870 7,928,712 8,838,151 9,414,854 9,958,952 10,502,569 11,054,641 11,593,770 11,913,871 11,913,995 13,055,379 13,850,157 14,600,842 21,389,992 28,201,108 28,996,290 29,672,099 29,821,048 31,181,381 32,352,626 33,455,752 34,582,722 177,654,784 + +State income tax rate (frac) 0.0 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 +State tax benefit (liability) ($) 0 -514,193 -259,785 -280,067 -299,148 -318,008 -336,865 -353,823 -355,258 -360,756 -402,136 -428,376 -453,132 -477,867 -502,986 -527,517 -542,081 -542,087 -594,020 -630,182 -664,338 -973,245 -1,283,150 -1,319,331 -1,350,080 -1,356,858 -1,418,753 -1,472,044 -1,522,237 -1,573,514 -8,083,293 + +PROJECT FEDERAL INCOME TAXES +EBITDA ($) 0 30,488,084 30,788,245 31,084,972 31,344,870 31,588,759 31,820,627 31,997,991 31,820,513 31,717,704 32,387,837 32,708,483 32,978,600 33,229,056 33,467,447 33,670,937 33,631,904 33,247,755 33,977,967 34,332,791 34,612,726 34,867,358 35,108,696 35,327,188 35,385,938 34,874,635 35,528,498 35,943,820 36,238,108 36,499,621 178,645,645 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -514,193 -259,785 -280,067 -299,148 -318,008 -336,865 -353,823 -355,258 -360,756 -402,136 -428,376 -453,132 -477,867 -502,986 -527,517 -542,081 -542,087 -594,020 -630,182 -664,338 -973,245 -1,283,150 -1,319,331 -1,350,080 -1,356,858 -1,418,753 -1,472,044 -1,522,237 -1,573,514 -8,083,293 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal taxable IBI income ($) 0 +Federal taxable CBI income ($) 0 +Federal taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +minus: +Debt interest payment ($) 0 13,156,331 13,017,053 12,868,025 12,708,565 12,537,943 12,355,378 12,160,033 11,951,014 11,727,364 11,488,058 11,232,000 10,958,019 10,664,859 10,351,178 10,015,539 9,656,405 9,272,132 8,860,960 8,421,006 7,950,255 7,446,551 6,907,589 6,330,898 5,713,840 5,053,587 4,347,117 3,591,194 2,782,356 1,916,900 990,861 +Total federal tax depreciation ($) 0 6,030,814 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 6,030,814 0 0 0 0 0 0 0 0 0 +equals: +Federal taxable income ($) 0 10,786,746 5,449,779 5,875,252 6,275,529 6,671,179 7,066,755 7,422,506 7,452,612 7,567,956 8,436,015 8,986,478 9,505,820 10,024,702 10,551,655 11,066,253 11,371,790 11,371,908 12,461,359 13,219,974 13,936,504 20,416,747 26,917,958 27,676,959 28,322,018 28,464,190 29,762,629 30,880,582 31,933,515 33,009,208 169,571,491 + +Federal income tax rate (frac) 0.0 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 +Federal tax benefit (liability) ($) 0 -2,265,217 -1,144,454 -1,233,803 -1,317,861 -1,400,948 -1,484,019 -1,558,726 -1,565,049 -1,589,271 -1,771,563 -1,887,160 -1,996,222 -2,105,187 -2,215,848 -2,323,913 -2,388,076 -2,388,101 -2,616,885 -2,776,195 -2,926,666 -4,287,517 -5,652,771 -5,812,161 -5,947,624 -5,977,480 -6,250,152 -6,484,922 -6,706,038 -6,931,934 -35,610,013 + +CASH INCENTIVES +Federal IBI income ($) 0 +State IBI income ($) 0 +Utility IBI income ($) 0 +Other IBI income ($) 0 +Total IBI income ($) 0 + +Federal CBI income ($) 0 +State CBI income ($) 0 +Utility CBI income ($) 0 +Other CBI income ($) 0 +Total CBI income ($) 0 + +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +TAX CREDITS +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Federal ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC percent income ($) 0 85,140,906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC total income ($) 0 85,140,906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +State ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC percent income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +DEBT REPAYMENT +Debt balance ($) 187,947,582 185,957,893 183,828,926 181,550,931 179,113,477 176,505,401 173,714,759 170,728,772 167,533,767 164,115,111 160,457,149 156,543,129 152,355,129 147,873,968 143,079,126 137,948,645 132,459,030 126,585,143 120,300,083 113,575,069 106,379,304 98,679,836 90,441,405 81,626,284 72,194,104 62,101,671 51,302,768 39,747,943 27,384,279 14,155,159 0 +Debt interest payment ($) 0 13,156,331 13,017,053 12,868,025 12,708,565 12,537,943 12,355,378 12,160,033 11,951,014 11,727,364 11,488,058 11,232,000 10,958,019 10,664,859 10,351,178 10,015,539 9,656,405 9,272,132 8,860,960 8,421,006 7,950,255 7,446,551 6,907,589 6,330,898 5,713,840 5,053,587 4,347,117 3,591,194 2,782,356 1,916,900 990,861 +Debt principal payment ($) 0 1,989,689 2,128,967 2,277,995 2,437,455 2,608,076 2,790,642 2,985,987 3,195,006 3,418,656 3,657,962 3,914,019 4,188,001 4,481,161 4,794,842 5,130,481 5,489,615 5,873,888 6,285,060 6,725,014 7,195,765 7,699,468 8,238,431 8,815,121 9,432,180 10,092,432 10,798,903 11,554,826 12,363,664 13,229,120 14,155,159 +Debt total payment ($) 0 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 + +DSCR (DEBT FRACTION) +EBITDA ($) 0 30,488,084 30,788,245 31,084,972 31,344,870 31,588,759 31,820,627 31,997,991 31,820,513 31,717,704 32,387,837 32,708,483 32,978,600 33,229,056 33,467,447 33,670,937 33,631,904 33,247,755 33,977,967 34,332,791 34,612,726 34,867,358 35,108,696 35,327,188 35,385,938 34,874,635 35,528,498 35,943,820 36,238,108 36,499,621 178,645,645 +minus: +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash available for debt service (CAFDS) ($) 0 30,488,084 30,788,245 31,084,972 31,344,870 31,588,759 31,820,627 31,997,991 31,820,513 31,717,704 32,387,837 32,708,483 32,978,600 33,229,056 33,467,447 33,670,937 33,631,904 33,247,755 33,977,967 34,332,791 34,612,726 34,867,358 35,108,696 35,327,188 35,385,938 34,874,635 35,528,498 35,943,820 36,238,108 36,499,621 178,645,645 +Debt total payment ($) 0 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 +DSCR (pre-tax) 0.0 2.01 2.03 2.05 2.07 2.09 2.10 2.11 2.10 2.09 2.14 2.16 2.18 2.19 2.21 2.22 2.22 2.20 2.24 2.27 2.29 2.30 2.32 2.33 2.34 2.30 2.35 2.37 2.39 2.41 11.79 + +RESERVES +Reserves working capital funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves debt service funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves total reserves balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest on reserves (%/year) 1.75 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/tests/examples/example_SAM-single-owner-PPA-7_chp.txt b/tests/examples/example_SAM-single-owner-PPA-7_chp.txt new file mode 100644 index 000000000..266d14b7d --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-7_chp.txt @@ -0,0 +1,109 @@ +# Example: SAM Single Owner PPA Economic Model: Combined Heat and Power (CHP): Cogeneration Topping Cycle +# See documentation: https://softwareengineerprogrammer.github.io/GEOPHIRES/SAM-EM_End-Uses-and-Surface-Applications.html + +# *** ECONOMIC/FINANCIAL PARAMETERS *** +# ************************************* +Economic Model, 5, -- SAM Single Owner PPA + +Inflation Rate, .027, -- US inflation as of December 2025 + +Starting Electricity Sale Price, 0.095 +Electricity Escalation Rate Per Year, 0.00057 +Ending Electricity Sale Price, 1, -- Note that this value does not directly determine price at the end of the project life, but rather as a cap as the maximum price to which the starting price can escalate. +Electricity Escalation Start Year, 1 + +Fraction of Investment in Bonds, .7 +Discount Rate, 0.12 +Inflated Bond Interest Rate, .07 + +Inflated Bond Interest Rate During Construction, 0.105 +Bond Financing Start Year, -1 + +Construction Years, 3 + +Construction CAPEX Schedule, 0.075,0.525,0.4, -- DOE-ATB hybrid scenario + +Investment Tax Credit Rate, 0.3 +Combined Income Tax Rate, .2555 +Property Tax Rate, 0.0022 + +Capital Cost for Power Plant for Electricity Generation, 1900 + +Well Drilling Cost Correlation, 3 +Well Drilling and Completion Capital Cost Adjustment Factor, 0.9, -- 2024b Geothermal ATB + +Reservoir Stimulation Capital Cost per Injection Well, 4 +Reservoir Stimulation Capital Cost per Production Well, 4 + +Field Gathering System Capital Cost Adjustment Factor, 0.35 + +# *** SURFACE & SUBSURFACE TECHNICAL PARAMETERS *** +# ************************************************* + +End-Use Option, 31, -- CHP Topping Cycle with electricity as the main product +Power Plant Type, 1, -- Subcritical ORC + +Plant Lifetime, 30 + +Surface Temperature, 13 + +Number of Segments, 3 +Gradient 1, 74 +Thickness 1, 2.5 +Gradient 2, 41 +Thickness 2, 0.5 +Gradient 3, 39.1 + +Reservoir Depth, 2.68 + +Reservoir Density, 2800 +Reservoir Heat Capacity, 790 +Reservoir Thermal Conductivity, 3.05 +Reservoir Porosity, 0.0118 + +Reservoir Model, 1, -- Multiple Parallel Fractures (Gringarten) +Reservoir Volume Option, 1, -- FRAC_NUM_SEP: Reservoir volume calculated with fracture separation and number of fractures as input + +Number of Fractures per Stimulated Well, 150 +Fracture Separation, 9.8255 + +Fracture Shape, 4, -- Rectangular +Fracture Width, 305 +Fracture Height, 100 + +Water Loss Fraction, 0.01 + +Ambient Temperature, 11.1728 + +Utilization Factor, .9 +Plant Outlet Pressure, 2000 psi +Circulation Pump Efficiency, 0.80 + +# *** Well Bores Parameters *** + +Number of Production Wells, 6 +Number of Injection Wells per Production Well, 0.666, -- 5-well bench pattern (3 producers : 2 injectors) + +Nonvertical Length per Multilateral Section, 5000 feet +Number of Multilateral Sections, 0, -- This parameter is set to 0 because the cost of horizontal drilling is included within the 'vertical drilling cost.' This approach allows us to more directly convey the overall well drilling and completion cost. + +Production Flow Rate per Well, 100 + +Production Well Diameter, 8.535, -- Inner diameter of 9⅝ inch casing size +Injection Well Diameter, 8.535, -- See Production Well Diameter + +Production Wellhead Pressure, 303 psi + +Injectivity Index, 1.38 +Productivity Index, 1.13 + +Ramey Production Wellbore Model, True, -- Ramey's model estimates the geofluid temperature drop in production wells +Injection Temperature, 47.5 +Injection Wellbore Temperature Gain, 3 + +Maximum Drawdown, 0.0025 + +# *** SIMULATION PARAMETERS *** +# ***************************** +Maximum Temperature, 500 +Time steps per year, 12 diff --git a/tests/examples/example_SAM-single-owner-PPA-7b_chp-cc.out b/tests/examples/example_SAM-single-owner-PPA-7b_chp-cc.out new file mode 100644 index 000000000..c82383ac2 --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-7b_chp-cc.out @@ -0,0 +1,493 @@ + ***************** + ***CASE REPORT*** + ***************** + +Simulation Metadata +---------------------- + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-07 + Simulation Time: 10:14 + Calculation Time: 1.798 sec + + ***SUMMARY OF RESULTS*** + + End-Use Option: Cogeneration Topping Cycle, Heat sales considered as extra income + Average Net Electricity Production: 45.52 MW + Average Direct-Use Heat Production: 62.20 MW + Electricity breakeven price: 9.56 cents/kWh + Direct-Use heat breakeven price (LCOH): 3.46 USD/MMBTU + Total CAPEX: 283.80 MUSD + Electricity CAPEX ($/kWe): 5304 USD/kW + Heat CAPEX ($/kWth): 658 USD/kW + Number of production wells: 6 + Number of injection wells: 4 + Flowrate per production well: 100.0 kg/sec + Well depth: 2.7 kilometer + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + Total Avoided Carbon Emissions: 5055.92 kilotonne + + + ***ECONOMIC PARAMETERS*** + + Economic Model = SAM Single Owner PPA + Real Discount Rate: 12.00 % + Nominal Discount Rate: 15.02 % + WACC: 8.57 % + Investment Tax Credit: 85.14 MUSD + Project lifetime: 30 yr + Capacity factor: 90.0 % + Project NPV: 78.06 MUSD + After-tax IRR: 33.24 % + Project VIR=PI=PIR: 1.95 + Project MOIC: 7.48 + Project Payback Period: 3.92 yr + CHP: Percent cost allocation for electrical plant: 85.55 % + + ***ENGINEERING PARAMETERS*** + + Number of Production Wells: 6 + Number of Injection Wells: 4 + Well depth: 2.7 kilometer + Water loss rate: 1.0 % + Pump efficiency: 80.0 % + Injection temperature: 50.5 degC + Production Wellbore heat transmission calculated with Ramey's model + Average production well temperature drop: 0.3 degC + Flowrate per production well: 100.0 kg/sec + Injection well casing ID: 8.535 in + Production well casing ID: 8.535 in + Number of times redrilling: 3 + Power plant type: Subcritical ORC + + + ***RESOURCE CHARACTERISTICS*** + + Maximum reservoir temperature: 500.0 degC + Number of segments: 3 + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***RESERVOIR PARAMETERS*** + + Reservoir Model = Multiple Parallel Fractures Model (Gringarten) + Bottom-hole temperature: 205.38 degC + Fracture model = Rectangular + Well separation: fracture height: 100.00 meter + Fracture width: 305.00 meter + Fracture area: 30500.00 m**2 + Reservoir volume calculated with fracture separation and number of fractures as input + Number of fractures: 1500 + Fracture separation: 9.83 meter + Reservoir volume: 449216947 m**3 + Reservoir hydrostatic pressure: 25324.54 kPa + Plant outlet pressure: 13789.51 kPa + Production wellhead pressure: 2089.11 kPa + Productivity Index: 1.13 kg/sec/bar + Injectivity Index: 1.38 kg/sec/bar + Reservoir density: 2800.00 kg/m**3 + Reservoir thermal conductivity: 3.05 W/m/K + Reservoir heat capacity: 790.00 J/kg/K + + + ***RESERVOIR SIMULATION RESULTS*** + + Maximum Production Temperature: 203.1 degC + Average Production Temperature: 202.8 degC + Minimum Production Temperature: 201.3 degC + Initial Production Temperature: 201.6 degC + Average Reservoir Heat Extraction: 382.08 MW + Production Wellbore Heat Transmission Model = Ramey Model + Average Production Well Temperature Drop: 0.3 degC + Average Injection Well Pump Pressure Drop: -2003.9 kPa + Average Production Well Pump Pressure Drop: 9514.2 kPa + + + ***CAPITAL COSTS (M$)*** + + Exploration costs: 4.71 MUSD + Drilling and completion costs: 46.49 MUSD + Drilling and completion costs per well: 4.65 MUSD + Stimulation costs: 48.30 MUSD + Surface power plant costs: 154.20 MUSD + of which Electrical Plant Cost: 131.92 MUSD + of which Heat Plant Cost: 22.28 MUSD + Field gathering system costs: 3.20 MUSD + Total surface equipment costs: 157.40 MUSD + Overnight Capital Cost: 256.90 MUSD + Inflation costs during construction: 16.45 MUSD + Interest during construction: 10.46 MUSD + Total CAPEX: 283.80 MUSD + + + ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** + + Wellfield maintenance costs: 1.12 MUSD/yr + Power plant maintenance costs: 4.17 MUSD/yr + Water costs: 0.16 MUSD/yr + Redrilling costs: 9.48 MUSD/yr + Total operating and maintenance costs: 14.92 MUSD/yr + + + ***SURFACE EQUIPMENT SIMULATION RESULTS*** + Initial geofluid availability: 0.19 MW/(kg/s) + Maximum Total Electricity Generation: 53.91 MW + Average Total Electricity Generation: 53.66 MW + Minimum Total Electricity Generation: 52.44 MW + Initial Total Electricity Generation: 52.69 MW + Maximum Net Electricity Generation: 45.77 MW + Average Net Electricity Generation: 45.52 MW + Minimum Net Electricity Generation: 44.27 MW + Initial Net Electricity Generation: 44.54 MW + Average Annual Total Electricity Generation: 423.07 GWh + Average Annual Net Electricity Generation: 358.89 GWh + Initial pumping power/net installed power: 18.30 % + Maximum Net Heat Production: 62.26 MW + Average Net Heat Production: 62.20 MW + Minimum Net Heat Production: 61.90 MW + Initial Net Heat Production: 61.96 MW + Average Annual Heat Production: 490.38 GWh + Average Pumping Power: 8.14 MW + Heat to Power Conversion Efficiency: 14.54 % + + ************************************************************ + * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ************************************************************ + YEAR THERMAL GEOFLUID PUMP NET NET FIRST LAW + DRAWDOWN TEMPERATURE POWER POWER HEAT EFFICIENCY + (deg C) (MW) (MW) (MW) (%) + 0 1.0000 201.64 8.1512 44.5358 61.9595 14.3548 + 1 1.0052 202.70 8.1476 45.4006 62.1721 14.5209 + 2 1.0062 202.89 8.1469 45.5621 62.2116 14.5518 + 3 1.0067 202.99 8.1466 45.6463 62.2321 14.5679 + 4 1.0070 203.06 8.1464 45.7020 62.2457 14.5785 + 5 1.0073 203.11 8.1462 45.7427 62.2556 14.5863 + 6 1.0074 203.13 8.1463 45.7617 62.2603 14.5899 + 7 1.0066 202.97 8.1489 45.6249 62.2274 14.5635 + 8 1.0007 201.78 8.1656 44.6309 61.9867 14.3712 + 9 1.0048 202.61 8.1453 45.3285 62.1538 14.5075 + 10 1.0060 202.86 8.1444 45.5355 62.2044 14.5471 + 11 1.0066 202.97 8.1428 45.6327 62.2279 14.5658 + 12 1.0070 203.05 8.1408 45.6954 62.2427 14.5780 + 13 1.0072 203.10 8.1387 45.7412 62.2534 14.5870 + 14 1.0074 203.13 8.1370 45.7708 62.2602 14.5928 + 15 1.0070 203.06 8.1373 45.7058 62.2444 14.5804 + 16 1.0031 202.27 8.1479 45.0504 62.0860 14.4540 + 17 1.0041 202.47 8.1345 45.2256 62.1259 14.4892 + 18 1.0058 202.82 8.1344 45.5108 62.1959 14.5436 + 19 1.0065 202.95 8.1343 45.6217 62.2231 14.5648 + 20 1.0069 203.03 8.1343 45.6887 62.2395 14.5775 + 21 1.0072 203.09 8.1343 45.7358 62.2510 14.5865 + 22 1.0074 203.13 8.1344 45.7692 62.2592 14.5928 + 23 1.0072 203.10 8.1353 45.7465 62.2539 14.5884 + 24 1.0048 202.61 8.1426 45.3324 62.1541 14.5086 + 25 1.0027 202.20 8.1344 45.0033 62.0710 14.4467 + 26 1.0056 202.76 8.1344 45.4682 62.1855 14.5355 + 27 1.0063 202.92 8.1344 45.5997 62.2177 14.5606 + 28 1.0068 203.01 8.1344 45.6742 62.2360 14.5748 + 29 1.0071 203.08 8.1344 45.7252 62.2485 14.5845 + + + ******************************************************************* + * ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ******************************************************************* + YEAR HEAT ELECTRICITY HEAT RESERVOIR PERCENTAGE OF + PROVIDED PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED + (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%) + 1 489.6 355.7 3002.77 143.09 7.02 + 2 490.3 358.7 3011.81 132.25 14.07 + 3 490.6 359.6 3014.56 121.39 21.12 + 4 490.7 360.1 3016.19 110.54 28.18 + 5 490.8 360.5 3017.33 99.67 35.23 + 6 490.8 360.7 3018.10 88.81 42.29 + 7 490.8 360.5 3017.30 77.95 49.35 + 8 489.9 356.8 3006.30 67.12 56.38 + 9 489.2 353.9 2997.27 56.33 63.40 + 10 490.3 358.3 3010.72 45.49 70.44 + 11 490.5 359.4 3014.03 34.64 77.49 + 12 490.7 360.0 3015.84 23.79 84.54 + 13 490.8 360.5 3017.08 12.93 91.60 + 14 490.8 360.8 3017.96 2.06 98.66 + 15 490.8 360.7 3017.88 -8.80 105.72 + 16 490.3 358.5 3011.14 -19.64 112.76 + 17 489.0 353.1 2994.77 -30.42 119.77 + 18 490.1 357.9 3009.26 -41.26 126.81 + 19 490.5 359.3 3013.41 -52.11 133.86 + 20 490.6 360.0 3015.46 -62.96 140.91 + 21 490.7 360.4 3016.81 -73.82 147.97 + 22 490.8 360.7 3017.78 -84.69 155.03 + 23 490.9 360.8 3018.13 -95.55 162.09 + 24 490.5 359.5 3014.27 -106.40 169.14 + 25 489.0 353.3 2995.26 -117.19 176.14 + 26 490.0 357.2 3007.08 -128.01 183.18 + 27 490.4 359.1 3012.68 -138.86 190.23 + 28 490.6 359.8 3015.04 -149.71 197.28 + 29 490.7 360.3 3016.51 -160.57 204.33 + 30 490.8 360.6 3017.53 -171.43 211.39 + + *************************** + * SAM CASH FLOW PROFILE * + *************************** +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + Year -2 Year -1 Year 0 Year 1 Year 2 Year 3 Year 4 Year 5 Year 6 Year 7 Year 8 Year 9 Year 10 Year 11 Year 12 Year 13 Year 14 Year 15 Year 16 Year 17 Year 18 Year 19 Year 20 Year 21 Year 22 Year 23 Year 24 Year 25 Year 26 Year 27 Year 28 Year 29 Year 30 +CONSTRUCTION +Capital expenditure schedule [construction] (%) 7.50 52.50 40.0 +Overnight capital expenditure [construction] ($) -19,267,186 -134,870,303 -102,758,326 +plus: +Inflation cost [construction] ($) -520,214 -7,381,317 -8,550,179 +plus: +Royalty supplemental payments [construction] ($) 0 0 0 +equals: +Nominal capital expenditure [construction] ($) -19,787,400 -142,251,620 -111,308,506 + +Issuance of equity [construction] ($) 19,787,400 42,675,486 33,392,552 +Issuance of debt [construction] ($) 0 99,576,134 77,915,954 +Debt balance [construction] ($) 0 99,576,134 187,947,582 +Debt interest payment [construction] ($) 0 0 10,455,494 + +Installed cost [construction] ($) -19,787,400 -142,251,620 -121,764,000 +After-tax net cash flow [construction] ($) -19,787,400 -42,675,486 -33,392,552 + +ENERGY +Electricity to grid (kWh) 0.0 355,731,851 358,699,992 359,607,495 360,144,710 360,520,252 360,775,349 360,502,913 356,836,528 353,926,807.0 358,359,695 359,455,496 360,066,943 360,488,977 360,794,715 360,775,190 358,530,827 353,165,503 357,965,313 359,325,916 360,000,341 360,441,906 360,760,853 360,874,419 359,580,200 353,308,448 357,253,043 359,087,573 359,860,409 360,344,429 360,678,540 +Electricity from grid (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +Electricity to grid net (kWh) 0.0 355,731,851 358,699,992 359,607,495 360,144,710 360,520,252 360,775,349 360,502,913 356,836,528 353,926,807.0 358,359,695 359,455,496 360,066,943 360,488,977 360,794,715 360,775,190 358,530,827 353,165,503 357,965,313 359,325,916 360,000,341 360,441,906 360,760,853 360,874,419 359,580,200 353,308,448 357,253,043 359,087,573 359,860,409 360,344,429 360,678,540 + +Saved Carbon Production (pound) 0 368,490,024 371,328,485 372,196,274 372,709,969 373,069,066 373,312,995 373,052,598 369,547,379 366,763,822 371,002,734 372,050,498 372,634,972 373,038,268 373,330,374 373,311,576 371,165,843 366,034,776 370,624,148 371,925,317 372,570,265 372,992,526 373,297,529 373,406,170 372,168,955 366,171,800 369,942,951 371,697,395 372,436,462 372,899,325 373,218,828 + +Heat provided (kWh) 0 489,614,562 490,342,076 490,563,599 490,694,580 490,786,078 490,848,296 490,783,461 489,898,726 489,171,820 490,254,084 490,520,388 490,666,584 490,765,776 490,836,812 490,830,234 490,288,258 488,970,947 490,137,018 490,470,680 490,635,823 490,743,886 490,821,935 490,850,303 490,539,597 489,010,601 489,961,766 490,412,356 490,601,741 490,720,237 490,801,992 + +REVENUE +PPA price (cents/kWh) 0.0 9.50 9.50 9.56 9.61 9.67 9.73 9.79 9.84 9.90 9.96 10.01 10.07 10.13 10.18 10.24 10.30 10.36 10.41 10.47 10.53 10.58 10.64 10.70 10.75 10.81 10.87 10.93 10.98 11.04 11.10 +PPA revenue ($) 0 33,794,526 34,076,499 34,367,688 34,624,312 34,865,914 35,096,226 35,275,210 35,119,851 35,035,215 35,678,291 35,992,279 36,258,741 36,506,719 36,743,334 36,946,987 36,921,505 36,570,288 37,271,348 37,617,830 37,893,636 38,145,567 38,384,955 38,602,737 38,669,255 38,196,176 38,826,261 39,230,317 39,519,870 39,778,422 40,020,891 +Curtailment payment revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Carbon price ($/lb) 0.0 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 +Carbon credits revenue ($) 0 8,357,213 8,421,588 8,441,270 8,452,920 8,461,064 8,466,596 8,460,691 8,381,194 8,318,064 8,414,200 8,437,963 8,451,219 8,460,366 8,466,990 8,466,564 8,417,900 8,301,529 8,405,614 8,435,124 8,449,751 8,459,328 8,466,246 8,468,709 8,440,650 8,304,637 8,390,165 8,429,955 8,446,717 8,457,214 8,464,461 +plus: +Heat price ($/kWh) 0.0 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 +Heat revenue ($) 0 12,240,364 12,258,552 12,264,090 12,267,364 12,269,652 12,271,207 12,269,587 12,247,468 12,229,296 12,256,352 12,263,010 12,266,665 12,269,144 12,270,920 12,270,756 12,257,206 12,224,274 12,253,425 12,261,767 12,265,896 12,268,597 12,270,548 12,271,258 12,263,490 12,225,265 12,249,044 12,260,309 12,265,044 12,268,006 12,270,050 +equals: +Capacity payment revenue ($) 0 20,597,577 20,680,140 20,705,360 20,720,284 20,730,716 20,737,803 20,730,278 20,628,662 20,547,360 20,670,552 20,700,973 20,717,884 20,729,510 20,737,910 20,737,320 20,675,106 20,525,803 20,659,039 20,696,891 20,715,647 20,727,925 20,736,794 20,739,967 20,704,140 20,529,902 20,639,209 20,690,264 20,711,761 20,725,220 20,734,511 + +Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141,901,510 +Total revenue ($) 0 54,392,103 54,756,639 55,073,048 55,344,596 55,596,630 55,834,029 56,005,488 55,748,513 55,582,575 56,348,843 56,693,252 56,976,625 57,236,229 57,481,244 57,684,307 57,596,611 57,096,091 57,930,387 58,314,721 58,609,283 58,873,492 59,121,749 59,342,704 59,373,395 58,726,078 59,465,470 59,920,581 60,231,631 60,503,642 202,656,912 + +Property tax net assessed value ($) 0 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 283,803,020 + +OPERATING EXPENSES +O&M fixed expense ($) 0 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 14,922,440 +O&M production-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +O&M capacity-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Fuel expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Electricity purchase ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Property tax expense ($) 0 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 624,367 +Insurance expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total operating expenses ($) 0 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 15,546,806 + +EBITDA ($) 0 38,845,297 39,209,833 39,526,242 39,797,790 40,049,823 40,287,223 40,458,682 40,201,707 40,035,768 40,802,037 41,146,446 41,429,819 41,689,422 41,934,437 42,137,501 42,049,804 41,549,284 42,383,581 42,767,915 43,062,477 43,326,686 43,574,942 43,795,897 43,826,588 43,179,272 43,918,663 44,373,775 44,684,825 44,956,835 187,110,106 + +OPERATING ACTIVITIES +EBITDA ($) 0 38,845,297 39,209,833 39,526,242 39,797,790 40,049,823 40,287,223 40,458,682 40,201,707 40,035,768 40,802,037 41,146,446 41,429,819 41,689,422 41,934,437 42,137,501 42,049,804 41,549,284 42,383,581 42,767,915 43,062,477 43,326,686 43,574,942 43,795,897 43,826,588 43,179,272 43,918,663 44,373,775 44,684,825 44,956,835 187,110,106 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +plus PBI if not available for debt service: +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Debt interest payment ($) 0 13,156,331 13,017,053 12,868,025 12,708,565 12,537,943 12,355,378 12,160,033 11,951,014 11,727,364 11,488,058 11,232,000 10,958,019 10,664,859 10,351,178 10,015,539 9,656,405 9,272,132 8,860,960 8,421,006 7,950,255 7,446,551 6,907,589 6,330,898 5,713,840 5,053,587 4,347,117 3,591,194 2,782,356 1,916,900 990,861 +Cash flow from operating activities ($) 0 25,688,966 26,192,780 26,658,217 27,089,225 27,511,880 27,931,845 28,298,649 28,250,693 28,308,405 29,313,979 29,914,445 30,471,800 31,024,563 31,583,260 32,121,962 32,393,399 32,277,152 33,522,621 34,346,909 35,112,222 35,880,134 36,667,354 37,464,999 38,112,749 38,125,685 39,571,546 40,782,581 41,902,469 43,039,936 186,119,245 + +INVESTING ACTIVITIES +Total installed cost ($) -283,803,020 +Debt closing costs ($) 0 +Debt up-front fee ($) 0 +minus: +Total IBI income ($) 0 +Total CBI income ($) 0 +equals: +Purchase of property ($) -283,803,020 +plus: +Reserve (increase)/decrease debt service ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease working capital ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease receivables ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash flow from investing activities ($) -283,803,020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +FINANCING ACTIVITIES +Issuance of equity ($) 95,855,438 +Size of debt ($) 187,947,582 +minus: +Debt principal payment ($) 0 1,989,689 2,128,967 2,277,995 2,437,455 2,608,076 2,790,642 2,985,987 3,195,006 3,418,656 3,657,962 3,914,019 4,188,001 4,481,161 4,794,842 5,130,481 5,489,615 5,873,888 6,285,060 6,725,014 7,195,765 7,699,468 8,238,431 8,815,121 9,432,180 10,092,432 10,798,903 11,554,826 12,363,664 13,229,120 14,155,159 +equals: +Cash flow from financing activities ($) 283,803,020 -1,989,689 -2,128,967 -2,277,995 -2,437,455 -2,608,076 -2,790,642 -2,985,987 -3,195,006 -3,418,656 -3,657,962 -3,914,019 -4,188,001 -4,481,161 -4,794,842 -5,130,481 -5,489,615 -5,873,888 -6,285,060 -6,725,014 -7,195,765 -7,699,468 -8,238,431 -8,815,121 -9,432,180 -10,092,432 -10,798,903 -11,554,826 -12,363,664 -13,229,120 -14,155,159 + +PROJECT RETURNS +Pre-tax Cash Flow: +Cash flow from operating activities ($) 0 25,688,966 26,192,780 26,658,217 27,089,225 27,511,880 27,931,845 28,298,649 28,250,693 28,308,405 29,313,979 29,914,445 30,471,800 31,024,563 31,583,260 32,121,962 32,393,399 32,277,152 33,522,621 34,346,909 35,112,222 35,880,134 36,667,354 37,464,999 38,112,749 38,125,685 39,571,546 40,782,581 41,902,469 43,039,936 186,119,245 +Cash flow from investing activities ($) -283,803,020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Cash flow from financing activities ($) 283,803,020 -1,989,689 -2,128,967 -2,277,995 -2,437,455 -2,608,076 -2,790,642 -2,985,987 -3,195,006 -3,418,656 -3,657,962 -3,914,019 -4,188,001 -4,481,161 -4,794,842 -5,130,481 -5,489,615 -5,873,888 -6,285,060 -6,725,014 -7,195,765 -7,699,468 -8,238,431 -8,815,121 -9,432,180 -10,092,432 -10,798,903 -11,554,826 -12,363,664 -13,229,120 -14,155,159 +Total pre-tax cash flow ($) 0 23,699,277 24,063,813 24,380,222 24,651,770 24,903,804 25,141,203 25,312,662 25,055,687 24,889,749 25,656,017 26,000,426 26,283,799 26,543,403 26,788,418 26,991,481 26,903,785 26,403,265 27,237,561 27,621,895 27,916,457 28,180,666 28,428,923 28,649,878 28,680,569 28,033,252 28,772,644 29,227,755 29,538,805 29,810,815 171,964,086 + +Pre-tax Returns: +Issuance of equity ($) 95,855,438 +Total pre-tax cash flow ($) 0 23,699,277 24,063,813 24,380,222 24,651,770 24,903,804 25,141,203 25,312,662 25,055,687 24,889,749 25,656,017 26,000,426 26,283,799 26,543,403 26,788,418 26,991,481 26,903,785 26,403,265 27,237,561 27,621,895 27,916,457 28,180,666 28,428,923 28,649,878 28,680,569 28,033,252 28,772,644 29,227,755 29,538,805 29,810,815 171,964,086 +Total pre-tax returns ($) -95,855,438 23,699,277 24,063,813 24,380,222 24,651,770 24,903,804 25,141,203 25,312,662 25,055,687 24,889,749 25,656,017 26,000,426 26,283,799 26,543,403 26,788,418 26,991,481 26,903,785 26,403,265 27,237,561 27,621,895 27,916,457 28,180,666 28,428,923 28,649,878 28,680,569 28,033,252 28,772,644 29,227,755 29,538,805 29,810,815 171,964,086 + +After-tax Returns: +Total pre-tax returns ($) -95,855,438 23,699,277 24,063,813 24,380,222 24,651,770 24,903,804 25,141,203 25,312,662 25,055,687 24,889,749 25,656,017 26,000,426 26,283,799 26,543,403 26,788,418 26,991,481 26,903,785 26,403,265 27,237,561 27,621,895 27,916,457 28,180,666 28,428,923 28,649,878 28,680,569 28,033,252 28,772,644 29,227,755 29,538,805 29,810,815 171,964,086 +Federal ITC total income ($) 0 85,140,906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal tax benefit (liability) ($) 0 -3,940,378 -2,832,519 -2,925,813 -3,012,207 -3,096,926 -3,181,105 -3,254,630 -3,245,017 -3,256,585 -3,458,147 -3,578,508 -3,690,227 -3,801,026 -3,913,013 -4,020,994 -4,075,402 -4,052,101 -4,301,749 -4,466,973 -4,620,376 -5,983,147 -7,349,788 -7,509,672 -7,639,510 -7,642,103 -7,931,919 -8,174,664 -8,399,140 -8,627,140 -37,306,672 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -894,446 -642,967 -664,145 -683,756 -702,986 -722,095 -738,784 -736,602 -739,228 -784,982 -812,303 -837,663 -862,814 -888,234 -912,745 -925,096 -919,806 -976,475 -1,013,980 -1,048,802 -1,358,144 -1,668,365 -1,704,657 -1,734,130 -1,734,719 -1,800,505 -1,855,607 -1,906,562 -1,958,317 -8,468,426 +Total after-tax returns ($) -95,855,438 104,005,359 20,588,327 20,790,264 20,955,808 21,103,891 21,238,003 21,319,248 21,074,068 20,893,935 21,412,888 21,609,615 21,755,909 21,879,564 21,987,170 22,057,742 21,903,287 21,431,358 21,959,337 22,140,942 22,247,279 20,839,375 19,410,770 19,435,548 19,306,929 18,656,431 19,040,220 19,197,483 19,233,102 19,225,358 126,188,988 + +After-tax net cash flow ($) -19,787,400 -42,675,486 -33,392,552 104,005,359 20,588,327 20,790,264 20,955,808 21,103,891 21,238,003 21,319,248 21,074,068 20,893,935 21,412,888 21,609,615 21,755,909 21,879,564 21,987,170 22,057,742 21,903,287 21,431,358 21,959,337 22,140,942 22,247,279 20,839,375 19,410,770 19,435,548 19,306,929 18,656,431 19,040,220 19,197,483 19,233,102 19,225,358 126,188,988 +After-tax cumulative IRR (%) NaN NaN NaN 4.46 13.65 19.96 24.13 26.90 28.77 30.06 30.94 31.56 32.01 32.33 32.57 32.75 32.88 32.97 33.04 33.09 33.13 33.16 33.18 33.20 33.21 33.22 33.22 33.23 33.23 33.23 33.24 33.24 33.25 +After-tax cumulative NPV ($) -19,787,400 -56,888,775 -82,127,806 -13,785,392 -2,023,771 8,301,886 17,350,324 25,272,478 32,203,638 38,252,528 43,450,857 47,931,569 51,923,782 55,426,434 58,492,198 61,172,672 63,514,494 65,556,971 67,320,233 68,820,155 70,156,289 71,327,509 72,350,638 73,183,840 73,858,553 74,445,887 74,953,127 75,379,255 75,757,344 76,088,765 76,377,430 76,628,291 78,059,788 + +AFTER-TAX LCOE AND PPA PRICE +Annual costs ($) -19,787,400 -42,675,486 -33,392,552 49,613,256 -34,168,312 -34,282,784 -34,388,788 -34,492,738 -34,596,026 -34,686,240 -34,674,445 -34,688,639 -34,935,955 -35,083,637 -35,220,716 -35,356,665 -35,494,074 -35,626,565 -35,693,323 -35,664,733 -35,971,050 -36,173,779 -36,362,004 -38,034,117 -39,710,978 -39,907,155 -40,066,466 -40,069,648 -40,425,250 -40,723,098 -40,998,529 -41,278,283 65,433,587 +PPA revenue ($) 0 0 0 33,794,526 34,076,499 34,367,688 34,624,312 34,865,914 35,096,226 35,275,210 35,119,851 35,035,215 35,678,291 35,992,279 36,258,741 36,506,719 36,743,334 36,946,987 36,921,505 36,570,288 37,271,348 37,617,830 37,893,636 38,145,567 38,384,955 38,602,737 38,669,255 38,196,176 38,826,261 39,230,317 39,519,870 39,778,422 40,020,891 +Electricity to grid (kWh) 0 0 0 355,731,851 358,699,992 359,607,495 360,144,710 360,520,252 360,775,349 360,502,913 356,836,528 353,926,807 358,359,695 359,455,496 360,066,943 360,488,977 360,794,715 360,775,190 358,530,827 353,165,503 357,965,313 359,325,916 360,000,341 360,441,906 360,760,853 360,874,419 359,580,200 353,308,448 357,253,043 359,087,573 359,860,409 360,344,429 360,678,540 + +Present value of annual costs ($) 198,704,506 + +Present value of annual energy costs ($) 170,000,152 +Present value of annual energy nominal (kWh) 1,777,658,214 +LCOE Levelized cost of energy nominal (cents/kWh) 9.56 + +Present value of PPA revenue ($) 174,283,198 +Present value of annual energy nominal (kWh) 1,777,658,214 +LPPA Levelized PPA price nominal (cents/kWh) 9.80 + +Present value of annual heat costs ($) 28,704,354 +Present value of annual heat provided (MMBTU) 8,290,884 +LCOH Levelized cost of heating nominal ($/MMBTU) 3.46 + +PROJECT STATE INCOME TAXES +EBITDA ($) 0 38,845,297 39,209,833 39,526,242 39,797,790 40,049,823 40,287,223 40,458,682 40,201,707 40,035,768 40,802,037 41,146,446 41,429,819 41,689,422 41,934,437 42,137,501 42,049,804 41,549,284 42,383,581 42,767,915 43,062,477 43,326,686 43,574,942 43,795,897 43,826,588 43,179,272 43,918,663 44,373,775 44,684,825 44,956,835 187,110,106 +State taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State taxable IBI income ($) 0 +State taxable CBI income ($) 0 +minus: +Debt interest payment ($) 0 13,156,331 13,017,053 12,868,025 12,708,565 12,537,943 12,355,378 12,160,033 11,951,014 11,727,364 11,488,058 11,232,000 10,958,019 10,664,859 10,351,178 10,015,539 9,656,405 9,272,132 8,860,960 8,421,006 7,950,255 7,446,551 6,907,589 6,330,898 5,713,840 5,053,587 4,347,117 3,591,194 2,782,356 1,916,900 990,861 +Total state tax depreciation ($) 0 6,030,814 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 6,030,814 0 0 0 0 0 0 0 0 0 +equals: +State taxable income ($) 0 19,658,152 14,131,152 14,596,589 15,027,596 15,450,252 15,870,216 16,237,020 16,189,064 16,246,776 17,252,351 17,852,817 18,410,171 18,962,935 19,521,631 20,060,334 20,331,771 20,215,524 21,460,993 22,285,281 23,050,593 29,849,320 36,667,354 37,464,999 38,112,749 38,125,685 39,571,546 40,782,581 41,902,469 43,039,936 186,119,245 + +State income tax rate (frac) 0.0 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 +State tax benefit (liability) ($) 0 -894,446 -642,967 -664,145 -683,756 -702,986 -722,095 -738,784 -736,602 -739,228 -784,982 -812,303 -837,663 -862,814 -888,234 -912,745 -925,096 -919,806 -976,475 -1,013,980 -1,048,802 -1,358,144 -1,668,365 -1,704,657 -1,734,130 -1,734,719 -1,800,505 -1,855,607 -1,906,562 -1,958,317 -8,468,426 + +PROJECT FEDERAL INCOME TAXES +EBITDA ($) 0 38,845,297 39,209,833 39,526,242 39,797,790 40,049,823 40,287,223 40,458,682 40,201,707 40,035,768 40,802,037 41,146,446 41,429,819 41,689,422 41,934,437 42,137,501 42,049,804 41,549,284 42,383,581 42,767,915 43,062,477 43,326,686 43,574,942 43,795,897 43,826,588 43,179,272 43,918,663 44,373,775 44,684,825 44,956,835 187,110,106 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -894,446 -642,967 -664,145 -683,756 -702,986 -722,095 -738,784 -736,602 -739,228 -784,982 -812,303 -837,663 -862,814 -888,234 -912,745 -925,096 -919,806 -976,475 -1,013,980 -1,048,802 -1,358,144 -1,668,365 -1,704,657 -1,734,130 -1,734,719 -1,800,505 -1,855,607 -1,906,562 -1,958,317 -8,468,426 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal taxable IBI income ($) 0 +Federal taxable CBI income ($) 0 +Federal taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +minus: +Debt interest payment ($) 0 13,156,331 13,017,053 12,868,025 12,708,565 12,537,943 12,355,378 12,160,033 11,951,014 11,727,364 11,488,058 11,232,000 10,958,019 10,664,859 10,351,178 10,015,539 9,656,405 9,272,132 8,860,960 8,421,006 7,950,255 7,446,551 6,907,589 6,330,898 5,713,840 5,053,587 4,347,117 3,591,194 2,782,356 1,916,900 990,861 +Total federal tax depreciation ($) 0 6,030,814 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 12,061,628 6,030,814 0 0 0 0 0 0 0 0 0 +equals: +Federal taxable income ($) 0 18,763,706 13,488,185 13,932,444 14,343,841 14,747,265 15,148,121 15,498,236 15,452,462 15,507,548 16,467,369 17,040,514 17,572,509 18,100,121 18,633,397 19,147,589 19,406,675 19,295,718 20,484,518 21,271,300 22,001,791 28,491,176 34,998,989 35,760,341 36,378,618 36,390,966 37,771,041 38,926,974 39,995,907 41,081,619 177,650,819 + +Federal income tax rate (frac) 0.0 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 +Federal tax benefit (liability) ($) 0 -3,940,378 -2,832,519 -2,925,813 -3,012,207 -3,096,926 -3,181,105 -3,254,630 -3,245,017 -3,256,585 -3,458,147 -3,578,508 -3,690,227 -3,801,026 -3,913,013 -4,020,994 -4,075,402 -4,052,101 -4,301,749 -4,466,973 -4,620,376 -5,983,147 -7,349,788 -7,509,672 -7,639,510 -7,642,103 -7,931,919 -8,174,664 -8,399,140 -8,627,140 -37,306,672 + +CASH INCENTIVES +Federal IBI income ($) 0 +State IBI income ($) 0 +Utility IBI income ($) 0 +Other IBI income ($) 0 +Total IBI income ($) 0 + +Federal CBI income ($) 0 +State CBI income ($) 0 +Utility CBI income ($) 0 +Other CBI income ($) 0 +Total CBI income ($) 0 + +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +TAX CREDITS +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Federal ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC percent income ($) 0 85,140,906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC total income ($) 0 85,140,906 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +State ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC percent income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +DEBT REPAYMENT +Debt balance ($) 187,947,582 185,957,893 183,828,926 181,550,931 179,113,477 176,505,401 173,714,759 170,728,772 167,533,767 164,115,111 160,457,149 156,543,129 152,355,129 147,873,968 143,079,126 137,948,645 132,459,030 126,585,143 120,300,083 113,575,069 106,379,304 98,679,836 90,441,405 81,626,284 72,194,104 62,101,671 51,302,768 39,747,943 27,384,279 14,155,159 0 +Debt interest payment ($) 0 13,156,331 13,017,053 12,868,025 12,708,565 12,537,943 12,355,378 12,160,033 11,951,014 11,727,364 11,488,058 11,232,000 10,958,019 10,664,859 10,351,178 10,015,539 9,656,405 9,272,132 8,860,960 8,421,006 7,950,255 7,446,551 6,907,589 6,330,898 5,713,840 5,053,587 4,347,117 3,591,194 2,782,356 1,916,900 990,861 +Debt principal payment ($) 0 1,989,689 2,128,967 2,277,995 2,437,455 2,608,076 2,790,642 2,985,987 3,195,006 3,418,656 3,657,962 3,914,019 4,188,001 4,481,161 4,794,842 5,130,481 5,489,615 5,873,888 6,285,060 6,725,014 7,195,765 7,699,468 8,238,431 8,815,121 9,432,180 10,092,432 10,798,903 11,554,826 12,363,664 13,229,120 14,155,159 +Debt total payment ($) 0 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 + +DSCR (DEBT FRACTION) +EBITDA ($) 0 38,845,297 39,209,833 39,526,242 39,797,790 40,049,823 40,287,223 40,458,682 40,201,707 40,035,768 40,802,037 41,146,446 41,429,819 41,689,422 41,934,437 42,137,501 42,049,804 41,549,284 42,383,581 42,767,915 43,062,477 43,326,686 43,574,942 43,795,897 43,826,588 43,179,272 43,918,663 44,373,775 44,684,825 44,956,835 187,110,106 +minus: +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash available for debt service (CAFDS) ($) 0 38,845,297 39,209,833 39,526,242 39,797,790 40,049,823 40,287,223 40,458,682 40,201,707 40,035,768 40,802,037 41,146,446 41,429,819 41,689,422 41,934,437 42,137,501 42,049,804 41,549,284 42,383,581 42,767,915 43,062,477 43,326,686 43,574,942 43,795,897 43,826,588 43,179,272 43,918,663 44,373,775 44,684,825 44,956,835 187,110,106 +Debt total payment ($) 0 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 15,146,020 +DSCR (pre-tax) 0.0 2.56 2.59 2.61 2.63 2.64 2.66 2.67 2.65 2.64 2.69 2.72 2.74 2.75 2.77 2.78 2.78 2.74 2.80 2.82 2.84 2.86 2.88 2.89 2.89 2.85 2.90 2.93 2.95 2.97 12.35 + +RESERVES +Reserves working capital funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves debt service funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves total reserves balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest on reserves (%/year) 1.75 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/tests/examples/example_SAM-single-owner-PPA-7b_chp-cc.txt b/tests/examples/example_SAM-single-owner-PPA-7b_chp-cc.txt new file mode 100644 index 000000000..3cf6df731 --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-7b_chp-cc.txt @@ -0,0 +1,114 @@ +# Example: SAM Single Owner PPA Economic Model: Combined Heat and Power (CHP): Carbon Credits +# See documentation: https://softwareengineerprogrammer.github.io/GEOPHIRES/SAM-EM_End-Uses-and-Surface-Applications.html + +# *** ECONOMIC/FINANCIAL PARAMETERS *** +# ************************************* +Economic Model, 5, -- SAM Single Owner PPA + +Inflation Rate, .027, -- US inflation as of December 2025 + +Starting Electricity Sale Price, 0.095 +Electricity Escalation Rate Per Year, 0.00057 +Ending Electricity Sale Price, 1, -- Note that this value does not directly determine price at the end of the project life, but rather as a cap as the maximum price to which the starting price can escalate. +Electricity Escalation Start Year, 1 + +Starting Carbon Credit Value, 50 USD/tonne +Ending Carbon Credit Value, 999, -- Note that this value does not directly determine price at the end of the project life, but rather as a cap as the maximum price to which the starting price can escalate. +Carbon Escalation Rate Per Year, 0 +Units:Total Saved Carbon Production, kilotonne + +Fraction of Investment in Bonds, .7 +Discount Rate, 0.12 +Inflated Bond Interest Rate, .07 + +Inflated Bond Interest Rate During Construction, 0.105 +Bond Financing Start Year, -1 + +Construction Years, 3 + +Construction CAPEX Schedule, 0.075,0.525,0.4, -- DOE-ATB hybrid scenario + +Investment Tax Credit Rate, 0.3 +Combined Income Tax Rate, .2555 +Property Tax Rate, 0.0022 + +Capital Cost for Power Plant for Electricity Generation, 1900 + +Well Drilling Cost Correlation, 3 +Well Drilling and Completion Capital Cost Adjustment Factor, 0.9, -- 2024b Geothermal ATB + +Reservoir Stimulation Capital Cost per Injection Well, 4 +Reservoir Stimulation Capital Cost per Production Well, 4 + +Field Gathering System Capital Cost Adjustment Factor, 0.35 + +# *** SURFACE & SUBSURFACE TECHNICAL PARAMETERS *** +# ************************************************* + +End-Use Option, 31, -- CHP Topping Cycle with electricity as the main product +Power Plant Type, 1, -- Subcritical ORC + +Plant Lifetime, 30 + +Surface Temperature, 13 + +Number of Segments, 3 +Gradient 1, 74 +Thickness 1, 2.5 +Gradient 2, 41 +Thickness 2, 0.5 +Gradient 3, 39.1 + +Reservoir Depth, 2.68 + +Reservoir Density, 2800 +Reservoir Heat Capacity, 790 +Reservoir Thermal Conductivity, 3.05 +Reservoir Porosity, 0.0118 + +Reservoir Model, 1, -- Multiple Parallel Fractures (Gringarten) +Reservoir Volume Option, 1, -- FRAC_NUM_SEP: Reservoir volume calculated with fracture separation and number of fractures as input + +Number of Fractures per Stimulated Well, 150 +Fracture Separation, 9.8255 + +Fracture Shape, 4, -- Rectangular +Fracture Width, 305 +Fracture Height, 100 + +Water Loss Fraction, 0.01 + +Ambient Temperature, 11.1728 + +Utilization Factor, .9 +Plant Outlet Pressure, 2000 psi +Circulation Pump Efficiency, 0.80 + +# *** Well Bores Parameters *** + +Number of Production Wells, 6 +Number of Injection Wells per Production Well, 0.666, -- 5-well bench pattern (3 producers : 2 injectors) + +Nonvertical Length per Multilateral Section, 5000 feet +Number of Multilateral Sections, 0, -- This parameter is set to 0 because the cost of horizontal drilling is included within the 'vertical drilling cost.' This approach allows us to more directly convey the overall well drilling and completion cost. + +Production Flow Rate per Well, 100 + +Production Well Diameter, 8.535, -- Inner diameter of 9⅝ inch casing size +Injection Well Diameter, 8.535, -- See Production Well Diameter + +Production Wellhead Pressure, 303 psi + +Injectivity Index, 1.38 +Productivity Index, 1.13 + +Ramey Production Wellbore Model, True, -- Ramey's model estimates the geofluid temperature drop in production wells +Injection Temperature, 47.5 +Injection Wellbore Temperature Gain, 3 + +Maximum Drawdown, 0.0025 + +# *** SIMULATION PARAMETERS *** +# ***************************** +Maximum Temperature, 500 +Time steps per year, 12 diff --git a/tests/examples/example_SAM-single-owner-PPA-7c.out b/tests/examples/example_SAM-single-owner-PPA-7c.out new file mode 100644 index 000000000..3dc666c85 --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-7c.out @@ -0,0 +1,493 @@ + ***************** + ***CASE REPORT*** + ***************** + +Simulation Metadata +---------------------- + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-07 + Simulation Time: 10:14 + Calculation Time: 1.800 sec + + ***SUMMARY OF RESULTS*** + + End-Use Option: Cogeneration Topping Cycle, Heat sales considered as extra income + Average Net Electricity Production: 45.52 MW + Average Direct-Use Heat Production: 62.20 MW + Electricity breakeven price: 9.66 cents/kWh + Direct-Use heat breakeven price (LCOH): 5.18 USD/MMBTU + Total CAPEX: 334.40 MUSD + Electricity CAPEX ($/kWe): 5844 USD/kW + Heat CAPEX ($/kWth): 1074 USD/kW + Number of production wells: 6 + Number of injection wells: 4 + Flowrate per production well: 100.0 kg/sec + Well depth: 2.7 kilometer + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + Total Avoided Carbon Emissions: 5055.92 kilotonne + + + ***ECONOMIC PARAMETERS*** + + Economic Model = SAM Single Owner PPA + Real Discount Rate: 12.00 % + Nominal Discount Rate: 15.02 % + WACC: 8.57 % + Investment Tax Credit: 100.32 MUSD + Project lifetime: 30 yr + Capacity factor: 90.0 % + Project NPV: 62.14 MUSD + After-tax IRR: 28.41 % + Project VIR=PI=PIR: 1.64 + Project MOIC: 5.82 + Project Payback Period: 3.97 yr + CHP: Percent cost allocation for electrical plant: 80.00 % + + ***ENGINEERING PARAMETERS*** + + Number of Production Wells: 6 + Number of Injection Wells: 4 + Well depth: 2.7 kilometer + Water loss rate: 1.0 % + Pump efficiency: 80.0 % + Injection temperature: 50.5 degC + Production Wellbore heat transmission calculated with Ramey's model + Average production well temperature drop: 0.3 degC + Flowrate per production well: 100.0 kg/sec + Injection well casing ID: 8.535 in + Production well casing ID: 8.535 in + Number of times redrilling: 3 + Power plant type: Subcritical ORC + + + ***RESOURCE CHARACTERISTICS*** + + Maximum reservoir temperature: 500.0 degC + Number of segments: 3 + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***RESERVOIR PARAMETERS*** + + Reservoir Model = Multiple Parallel Fractures Model (Gringarten) + Bottom-hole temperature: 205.38 degC + Fracture model = Rectangular + Well separation: fracture height: 100.00 meter + Fracture width: 305.00 meter + Fracture area: 30500.00 m**2 + Reservoir volume calculated with fracture separation and number of fractures as input + Number of fractures: 1500 + Fracture separation: 9.83 meter + Reservoir volume: 449216947 m**3 + Reservoir hydrostatic pressure: 25324.54 kPa + Plant outlet pressure: 13789.51 kPa + Production wellhead pressure: 2089.11 kPa + Productivity Index: 1.13 kg/sec/bar + Injectivity Index: 1.38 kg/sec/bar + Reservoir density: 2800.00 kg/m**3 + Reservoir thermal conductivity: 3.05 W/m/K + Reservoir heat capacity: 790.00 J/kg/K + + + ***RESERVOIR SIMULATION RESULTS*** + + Maximum Production Temperature: 203.1 degC + Average Production Temperature: 202.8 degC + Minimum Production Temperature: 201.3 degC + Initial Production Temperature: 201.6 degC + Average Reservoir Heat Extraction: 382.08 MW + Production Wellbore Heat Transmission Model = Ramey Model + Average Production Well Temperature Drop: 0.3 degC + Average Injection Well Pump Pressure Drop: -2003.9 kPa + Average Production Well Pump Pressure Drop: 9514.2 kPa + + + ***CAPITAL COSTS (M$)*** + + Exploration costs: 4.71 MUSD + Drilling and completion costs: 46.49 MUSD + Drilling and completion costs per well: 4.65 MUSD + Stimulation costs: 48.30 MUSD + Surface power plant costs: 200.00 MUSD + of which Electrical Plant Cost: 160.00 MUSD + of which Heat Plant Cost: 40.00 MUSD + Field gathering system costs: 3.20 MUSD + Total surface equipment costs: 203.20 MUSD + Overnight Capital Cost: 302.70 MUSD + Inflation costs during construction: 19.38 MUSD + Interest during construction: 12.32 MUSD + Total CAPEX: 334.40 MUSD + + + ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** + + Wellfield maintenance costs: 1.12 MUSD/yr + Power plant maintenance costs: 4.86 MUSD/yr + Water costs: 0.16 MUSD/yr + Redrilling costs: 9.48 MUSD/yr + Total operating and maintenance costs: 15.61 MUSD/yr + + + ***SURFACE EQUIPMENT SIMULATION RESULTS*** + Initial geofluid availability: 0.19 MW/(kg/s) + Maximum Total Electricity Generation: 53.91 MW + Average Total Electricity Generation: 53.66 MW + Minimum Total Electricity Generation: 52.44 MW + Initial Total Electricity Generation: 52.69 MW + Maximum Net Electricity Generation: 45.77 MW + Average Net Electricity Generation: 45.52 MW + Minimum Net Electricity Generation: 44.27 MW + Initial Net Electricity Generation: 44.54 MW + Average Annual Total Electricity Generation: 423.07 GWh + Average Annual Net Electricity Generation: 358.89 GWh + Initial pumping power/net installed power: 18.30 % + Maximum Net Heat Production: 62.26 MW + Average Net Heat Production: 62.20 MW + Minimum Net Heat Production: 61.90 MW + Initial Net Heat Production: 61.96 MW + Average Annual Heat Production: 490.38 GWh + Average Pumping Power: 8.14 MW + Heat to Power Conversion Efficiency: 14.54 % + + ************************************************************ + * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ************************************************************ + YEAR THERMAL GEOFLUID PUMP NET NET FIRST LAW + DRAWDOWN TEMPERATURE POWER POWER HEAT EFFICIENCY + (deg C) (MW) (MW) (MW) (%) + 0 1.0000 201.64 8.1512 44.5358 61.9595 14.3548 + 1 1.0052 202.70 8.1476 45.4006 62.1721 14.5209 + 2 1.0062 202.89 8.1469 45.5621 62.2116 14.5518 + 3 1.0067 202.99 8.1466 45.6463 62.2321 14.5679 + 4 1.0070 203.06 8.1464 45.7020 62.2457 14.5785 + 5 1.0073 203.11 8.1462 45.7427 62.2556 14.5863 + 6 1.0074 203.13 8.1463 45.7617 62.2603 14.5899 + 7 1.0066 202.97 8.1489 45.6249 62.2274 14.5635 + 8 1.0007 201.78 8.1656 44.6309 61.9867 14.3712 + 9 1.0048 202.61 8.1453 45.3285 62.1538 14.5075 + 10 1.0060 202.86 8.1444 45.5355 62.2044 14.5471 + 11 1.0066 202.97 8.1428 45.6327 62.2279 14.5658 + 12 1.0070 203.05 8.1408 45.6954 62.2427 14.5780 + 13 1.0072 203.10 8.1387 45.7412 62.2534 14.5870 + 14 1.0074 203.13 8.1370 45.7708 62.2602 14.5928 + 15 1.0070 203.06 8.1373 45.7058 62.2444 14.5804 + 16 1.0031 202.27 8.1479 45.0504 62.0860 14.4540 + 17 1.0041 202.47 8.1345 45.2256 62.1259 14.4892 + 18 1.0058 202.82 8.1344 45.5108 62.1959 14.5436 + 19 1.0065 202.95 8.1343 45.6217 62.2231 14.5648 + 20 1.0069 203.03 8.1343 45.6887 62.2395 14.5775 + 21 1.0072 203.09 8.1343 45.7358 62.2510 14.5865 + 22 1.0074 203.13 8.1344 45.7692 62.2592 14.5928 + 23 1.0072 203.10 8.1353 45.7465 62.2539 14.5884 + 24 1.0048 202.61 8.1426 45.3324 62.1541 14.5086 + 25 1.0027 202.20 8.1344 45.0033 62.0710 14.4467 + 26 1.0056 202.76 8.1344 45.4682 62.1855 14.5355 + 27 1.0063 202.92 8.1344 45.5997 62.2177 14.5606 + 28 1.0068 203.01 8.1344 45.6742 62.2360 14.5748 + 29 1.0071 203.08 8.1344 45.7252 62.2485 14.5845 + + + ******************************************************************* + * ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ******************************************************************* + YEAR HEAT ELECTRICITY HEAT RESERVOIR PERCENTAGE OF + PROVIDED PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED + (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%) + 1 489.6 355.7 3002.77 143.09 7.02 + 2 490.3 358.7 3011.81 132.25 14.07 + 3 490.6 359.6 3014.56 121.39 21.12 + 4 490.7 360.1 3016.19 110.54 28.18 + 5 490.8 360.5 3017.33 99.67 35.23 + 6 490.8 360.7 3018.10 88.81 42.29 + 7 490.8 360.5 3017.30 77.95 49.35 + 8 489.9 356.8 3006.30 67.12 56.38 + 9 489.2 353.9 2997.27 56.33 63.40 + 10 490.3 358.3 3010.72 45.49 70.44 + 11 490.5 359.4 3014.03 34.64 77.49 + 12 490.7 360.0 3015.84 23.79 84.54 + 13 490.8 360.5 3017.08 12.93 91.60 + 14 490.8 360.8 3017.96 2.06 98.66 + 15 490.8 360.7 3017.88 -8.80 105.72 + 16 490.3 358.5 3011.14 -19.64 112.76 + 17 489.0 353.1 2994.77 -30.42 119.77 + 18 490.1 357.9 3009.26 -41.26 126.81 + 19 490.5 359.3 3013.41 -52.11 133.86 + 20 490.6 360.0 3015.46 -62.96 140.91 + 21 490.7 360.4 3016.81 -73.82 147.97 + 22 490.8 360.7 3017.78 -84.69 155.03 + 23 490.9 360.8 3018.13 -95.55 162.09 + 24 490.5 359.5 3014.27 -106.40 169.14 + 25 489.0 353.3 2995.26 -117.19 176.14 + 26 490.0 357.2 3007.08 -128.01 183.18 + 27 490.4 359.1 3012.68 -138.86 190.23 + 28 490.6 359.8 3015.04 -149.71 197.28 + 29 490.7 360.3 3016.51 -160.57 204.33 + 30 490.8 360.6 3017.53 -171.43 211.39 + + *************************** + * SAM CASH FLOW PROFILE * + *************************** +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + Year -2 Year -1 Year 0 Year 1 Year 2 Year 3 Year 4 Year 5 Year 6 Year 7 Year 8 Year 9 Year 10 Year 11 Year 12 Year 13 Year 14 Year 15 Year 16 Year 17 Year 18 Year 19 Year 20 Year 21 Year 22 Year 23 Year 24 Year 25 Year 26 Year 27 Year 28 Year 29 Year 30 +CONSTRUCTION +Capital expenditure schedule [construction] (%) 7.50 52.50 40.0 +Overnight capital expenditure [construction] ($) -22,702,163 -158,915,142 -121,078,203 +plus: +Inflation cost [construction] ($) -612,958 -8,697,267 -10,074,516 +plus: +Royalty supplemental payments [construction] ($) 0 0 0 +equals: +Nominal capital expenditure [construction] ($) -23,315,122 -167,612,409 -131,152,719 + +Issuance of equity [construction] ($) 23,315,122 50,283,723 39,345,816 +Issuance of debt [construction] ($) 0 117,328,686 91,806,903 +Debt balance [construction] ($) 0 117,328,686 221,455,102 +Debt interest payment [construction] ($) 0 0 12,319,512 + +Installed cost [construction] ($) -23,315,122 -167,612,409 -143,472,231 +After-tax net cash flow [construction] ($) -23,315,122 -50,283,723 -39,345,816 + +ENERGY +Electricity to grid (kWh) 0.0 355,731,851 358,699,992 359,607,495 360,144,710 360,520,252 360,775,349 360,502,913 356,836,528 353,926,807.0 358,359,695 359,455,496 360,066,943 360,488,977 360,794,715 360,775,190 358,530,827 353,165,503 357,965,313 359,325,916 360,000,341 360,441,906 360,760,853 360,874,419 359,580,200 353,308,448 357,253,043 359,087,573 359,860,409 360,344,429 360,678,540 +Electricity from grid (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +Electricity to grid net (kWh) 0.0 355,731,851 358,699,992 359,607,495 360,144,710 360,520,252 360,775,349 360,502,913 356,836,528 353,926,807.0 358,359,695 359,455,496 360,066,943 360,488,977 360,794,715 360,775,190 358,530,827 353,165,503 357,965,313 359,325,916 360,000,341 360,441,906 360,760,853 360,874,419 359,580,200 353,308,448 357,253,043 359,087,573 359,860,409 360,344,429 360,678,540 + +Saved Carbon Production (pound) 0 368,490,024 371,328,485 372,196,274 372,709,969 373,069,066 373,312,995 373,052,598 369,547,379 366,763,822 371,002,734 372,050,498 372,634,972 373,038,268 373,330,374 373,311,576 371,165,843 366,034,776 370,624,148 371,925,317 372,570,265 372,992,526 373,297,529 373,406,170 372,168,955 366,171,800 369,942,951 371,697,395 372,436,462 372,899,325 373,218,828 + +Heat provided (kWh) 0 489,614,562 490,342,076 490,563,599 490,694,580 490,786,078 490,848,296 490,783,461 489,898,726 489,171,820 490,254,084 490,520,388 490,666,584 490,765,776 490,836,812 490,830,234 490,288,258 488,970,947 490,137,018 490,470,680 490,635,823 490,743,886 490,821,935 490,850,303 490,539,597 489,010,601 489,961,766 490,412,356 490,601,741 490,720,237 490,801,992 + +REVENUE +PPA price (cents/kWh) 0.0 9.50 9.50 9.56 9.61 9.67 9.73 9.79 9.84 9.90 9.96 10.01 10.07 10.13 10.18 10.24 10.30 10.36 10.41 10.47 10.53 10.58 10.64 10.70 10.75 10.81 10.87 10.93 10.98 11.04 11.10 +PPA revenue ($) 0 33,794,526 34,076,499 34,367,688 34,624,312 34,865,914 35,096,226 35,275,210 35,119,851 35,035,215 35,678,291 35,992,279 36,258,741 36,506,719 36,743,334 36,946,987 36,921,505 36,570,288 37,271,348 37,617,830 37,893,636 38,145,567 38,384,955 38,602,737 38,669,255 38,196,176 38,826,261 39,230,317 39,519,870 39,778,422 40,020,891 +Curtailment payment revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Carbon price ($/lb) 0.0 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 +Carbon credits revenue ($) 0 8,357,213 8,421,588 8,441,270 8,452,920 8,461,064 8,466,596 8,460,691 8,381,194 8,318,064 8,414,200 8,437,963 8,451,219 8,460,366 8,466,990 8,466,564 8,417,900 8,301,529 8,405,614 8,435,124 8,449,751 8,459,328 8,466,246 8,468,709 8,440,650 8,304,637 8,390,165 8,429,955 8,446,717 8,457,214 8,464,461 +plus: +Heat price ($/kWh) 0.0 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 +Heat revenue ($) 0 12,240,364 12,258,552 12,264,090 12,267,364 12,269,652 12,271,207 12,269,587 12,247,468 12,229,296 12,256,352 12,263,010 12,266,665 12,269,144 12,270,920 12,270,756 12,257,206 12,224,274 12,253,425 12,261,767 12,265,896 12,268,597 12,270,548 12,271,258 12,263,490 12,225,265 12,249,044 12,260,309 12,265,044 12,268,006 12,270,050 +equals: +Capacity payment revenue ($) 0 20,597,577 20,680,140 20,705,360 20,720,284 20,730,716 20,737,803 20,730,278 20,628,662 20,547,360 20,670,552 20,700,973 20,717,884 20,729,510 20,737,910 20,737,320 20,675,106 20,525,803 20,659,039 20,696,891 20,715,647 20,727,925 20,736,794 20,739,967 20,704,140 20,529,902 20,639,209 20,690,264 20,711,761 20,725,220 20,734,511 + +Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167,199,881 +Total revenue ($) 0 54,392,103 54,756,639 55,073,048 55,344,596 55,596,630 55,834,029 56,005,488 55,748,513 55,582,575 56,348,843 56,693,252 56,976,625 57,236,229 57,481,244 57,684,307 57,596,611 57,096,091 57,930,387 58,314,721 58,609,283 58,873,492 59,121,749 59,342,704 59,373,395 58,726,078 59,465,470 59,920,581 60,231,631 60,503,642 227,955,283 + +Property tax net assessed value ($) 0 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 334,399,762 + +OPERATING EXPENSES +O&M fixed expense ($) 0 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 15,609,435 +O&M production-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +O&M capacity-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Fuel expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Electricity purchase ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Property tax expense ($) 0 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 735,679 +Insurance expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total operating expenses ($) 0 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 16,345,115 + +EBITDA ($) 0 38,046,988 38,411,525 38,727,934 38,999,482 39,251,515 39,488,914 39,660,373 39,403,399 39,237,460 40,003,729 40,348,137 40,631,511 40,891,114 41,136,129 41,339,193 41,251,496 40,750,976 41,585,273 41,969,607 42,264,168 42,528,377 42,776,634 42,997,589 43,028,280 42,380,964 43,120,355 43,575,467 43,886,517 44,158,527 211,610,168 + +OPERATING ACTIVITIES +EBITDA ($) 0 38,046,988 38,411,525 38,727,934 38,999,482 39,251,515 39,488,914 39,660,373 39,403,399 39,237,460 40,003,729 40,348,137 40,631,511 40,891,114 41,136,129 41,339,193 41,251,496 40,750,976 41,585,273 41,969,607 42,264,168 42,528,377 42,776,634 42,997,589 43,028,280 42,380,964 43,120,355 43,575,467 43,886,517 44,158,527 211,610,168 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +plus PBI if not available for debt service: +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Debt interest payment ($) 0 15,501,857 15,337,748 15,162,152 14,974,263 14,773,223 14,558,110 14,327,938 14,081,655 13,818,132 13,536,162 13,234,455 12,911,628 12,566,203 12,196,598 11,801,121 11,377,961 10,925,179 10,440,703 9,922,313 9,367,636 8,774,131 8,139,082 7,459,578 6,732,510 5,954,547 5,122,126 4,231,436 3,278,398 2,258,647 1,167,513 +Cash flow from operating activities ($) 0 22,545,131 23,073,776 23,565,782 24,025,218 24,478,292 24,930,805 25,332,435 25,321,743 25,419,328 26,467,566 27,113,682 27,719,883 28,324,911 28,939,531 29,538,072 29,873,535 29,825,797 31,144,570 32,047,294 32,896,533 33,754,246 34,637,553 35,538,011 36,295,770 36,426,417 37,998,229 39,344,031 40,608,119 41,899,880 210,442,655 + +INVESTING ACTIVITIES +Total installed cost ($) -334,399,762 +Debt closing costs ($) 0 +Debt up-front fee ($) 0 +minus: +Total IBI income ($) 0 +Total CBI income ($) 0 +equals: +Purchase of property ($) -334,399,762 +plus: +Reserve (increase)/decrease debt service ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease working capital ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease receivables ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash flow from investing activities ($) -334,399,762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +FINANCING ACTIVITIES +Issuance of equity ($) 112,944,660 +Size of debt ($) 221,455,102 +minus: +Debt principal payment ($) 0 2,344,413 2,508,522 2,684,119 2,872,007 3,073,047 3,288,161 3,518,332 3,764,615 4,028,138 4,310,108 4,611,815 4,934,642 5,280,067 5,649,672 6,045,149 6,468,310 6,921,091 7,405,568 7,923,957 8,478,634 9,072,139 9,707,189 10,386,692 11,113,760 11,891,723 12,724,144 13,614,834 14,567,872 15,587,624 16,678,757 +equals: +Cash flow from financing activities ($) 334,399,762 -2,344,413 -2,508,522 -2,684,119 -2,872,007 -3,073,047 -3,288,161 -3,518,332 -3,764,615 -4,028,138 -4,310,108 -4,611,815 -4,934,642 -5,280,067 -5,649,672 -6,045,149 -6,468,310 -6,921,091 -7,405,568 -7,923,957 -8,478,634 -9,072,139 -9,707,189 -10,386,692 -11,113,760 -11,891,723 -12,724,144 -13,614,834 -14,567,872 -15,587,624 -16,678,757 + +PROJECT RETURNS +Pre-tax Cash Flow: +Cash flow from operating activities ($) 0 22,545,131 23,073,776 23,565,782 24,025,218 24,478,292 24,930,805 25,332,435 25,321,743 25,419,328 26,467,566 27,113,682 27,719,883 28,324,911 28,939,531 29,538,072 29,873,535 29,825,797 31,144,570 32,047,294 32,896,533 33,754,246 34,637,553 35,538,011 36,295,770 36,426,417 37,998,229 39,344,031 40,608,119 41,899,880 210,442,655 +Cash flow from investing activities ($) -334,399,762 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Cash flow from financing activities ($) 334,399,762 -2,344,413 -2,508,522 -2,684,119 -2,872,007 -3,073,047 -3,288,161 -3,518,332 -3,764,615 -4,028,138 -4,310,108 -4,611,815 -4,934,642 -5,280,067 -5,649,672 -6,045,149 -6,468,310 -6,921,091 -7,405,568 -7,923,957 -8,478,634 -9,072,139 -9,707,189 -10,386,692 -11,113,760 -11,891,723 -12,724,144 -13,614,834 -14,567,872 -15,587,624 -16,678,757 +Total pre-tax cash flow ($) 0 20,200,718 20,565,254 20,881,664 21,153,212 21,405,245 21,642,644 21,814,103 21,557,128 21,391,190 22,157,458 22,501,867 22,785,240 23,044,844 23,289,859 23,492,922 23,405,226 22,904,706 23,739,003 24,123,336 24,417,898 24,682,107 24,930,364 25,151,319 25,182,010 24,534,694 25,274,085 25,729,197 26,040,246 26,312,257 193,763,898 + +Pre-tax Returns: +Issuance of equity ($) 112,944,660 +Total pre-tax cash flow ($) 0 20,200,718 20,565,254 20,881,664 21,153,212 21,405,245 21,642,644 21,814,103 21,557,128 21,391,190 22,157,458 22,501,867 22,785,240 23,044,844 23,289,859 23,492,922 23,405,226 22,904,706 23,739,003 24,123,336 24,417,898 24,682,107 24,930,364 25,151,319 25,182,010 24,534,694 25,274,085 25,729,197 26,040,246 26,312,257 193,763,898 +Total pre-tax returns ($) -112,944,660 20,200,718 20,565,254 20,881,664 21,153,212 21,405,245 21,642,644 21,814,103 21,557,128 21,391,190 22,157,458 22,501,867 22,785,240 23,044,844 23,289,859 23,492,922 23,405,226 22,904,706 23,739,003 24,123,336 24,417,898 24,682,107 24,930,364 25,151,319 25,182,010 24,534,694 25,274,085 25,729,197 26,040,246 26,312,257 193,763,898 + +After-tax Returns: +Total pre-tax returns ($) -112,944,660 20,200,718 20,565,254 20,881,664 21,153,212 21,405,245 21,642,644 21,814,103 21,557,128 21,391,190 22,157,458 22,501,867 22,785,240 23,044,844 23,289,859 23,492,922 23,405,226 22,904,706 23,739,003 24,123,336 24,417,898 24,682,107 24,930,364 25,151,319 25,182,010 24,534,694 25,274,085 25,729,197 26,040,246 26,312,257 193,763,898 +Federal ITC total income ($) 0 100,319,929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal tax benefit (liability) ($) 0 -3,094,698 -1,776,301 -1,874,921 -1,967,013 -2,057,829 -2,148,533 -2,229,038 -2,226,895 -2,246,455 -2,456,569 -2,586,080 -2,707,590 -2,828,865 -2,952,062 -3,072,036 -3,139,278 -3,129,710 -3,394,051 -3,574,997 -3,745,223 -5,341,509 -6,942,924 -7,123,417 -7,275,306 -7,301,493 -7,616,555 -7,886,314 -8,139,694 -8,398,622 -42,182,178 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -702,481 -403,211 -425,598 -446,502 -467,117 -487,706 -505,980 -505,494 -509,934 -557,629 -587,027 -614,609 -642,138 -670,103 -697,337 -712,600 -710,428 -770,432 -811,506 -850,147 -1,212,495 -1,576,009 -1,616,979 -1,651,458 -1,657,402 -1,728,919 -1,790,153 -1,847,669 -1,906,445 -9,575,141 +Total after-tax returns ($) -112,944,660 116,723,468 18,385,742 18,581,145 18,739,697 18,880,299 19,006,405 19,079,085 18,824,740 18,634,801 19,143,261 19,328,760 19,463,042 19,573,842 19,667,694 19,723,549 19,553,347 19,064,568 19,574,519 19,736,833 19,822,528 18,128,103 16,411,431 16,410,923 16,255,247 15,575,798 15,928,611 16,052,729 16,052,883 16,007,191 142,006,579 + +After-tax net cash flow ($) -23,315,122 -50,283,723 -39,345,816 116,723,468 18,385,742 18,581,145 18,739,697 18,880,299 19,006,405 19,079,085 18,824,740 18,634,801 19,143,261 19,328,760 19,463,042 19,573,842 19,667,694 19,723,549 19,553,347 19,064,568 19,574,519 19,736,833 19,822,528 18,128,103 16,411,431 16,410,923 16,255,247 15,575,798 15,928,611 16,052,729 16,052,883 16,007,191 142,006,579 +After-tax cumulative IRR (%) NaN NaN NaN 1.78 9.31 14.84 18.72 21.42 23.31 24.65 25.60 26.29 26.80 27.19 27.48 27.70 27.87 28.00 28.09 28.17 28.22 28.27 28.30 28.33 28.34 28.36 28.37 28.37 28.38 28.38 28.39 28.39 28.41 +After-tax cumulative NPV ($) -23,315,122 -67,030,975 -96,769,651 -20,070,107 -9,566,770 -338,290 7,753,260 14,840,704 21,043,568 26,456,858 31,100,346 35,096,587 38,665,651 41,798,604 44,541,266 46,939,265 49,034,043 50,860,381 52,434,468 53,768,745 54,959,773 56,003,819 56,915,437 57,640,236 58,210,693 58,706,624 59,133,689 59,489,452 59,805,754 60,082,884 60,323,818 60,532,686 62,143,620 + +AFTER-TAX LCOE AND PPA PRICE +Annual costs ($) -23,315,122 -50,283,723 -39,345,816 62,331,365 -36,370,897 -36,491,903 -36,604,899 -36,716,330 -36,827,624 -36,926,403 -36,923,773 -36,947,774 -37,205,582 -37,364,492 -37,513,583 -37,662,387 -37,813,550 -37,960,758 -38,043,264 -38,031,523 -38,355,868 -38,577,889 -38,786,755 -40,745,389 -42,710,318 -42,931,781 -43,118,148 -43,150,280 -43,536,859 -43,867,852 -44,178,749 -44,496,451 81,251,177 +PPA revenue ($) 0 0 0 33,794,526 34,076,499 34,367,688 34,624,312 34,865,914 35,096,226 35,275,210 35,119,851 35,035,215 35,678,291 35,992,279 36,258,741 36,506,719 36,743,334 36,946,987 36,921,505 36,570,288 37,271,348 37,617,830 37,893,636 38,145,567 38,384,955 38,602,737 38,669,255 38,196,176 38,826,261 39,230,317 39,519,870 39,778,422 40,020,891 +Electricity to grid (kWh) 0 0 0 355,731,851 358,699,992 359,607,495 360,144,710 360,520,252 360,775,349 360,502,913 356,836,528 353,926,807 358,359,695 359,455,496 360,066,943 360,488,977 360,794,715 360,775,190 358,530,827 353,165,503 357,965,313 359,325,916 360,000,341 360,441,906 360,760,853 360,874,419 359,580,200 353,308,448 357,253,043 359,087,573 359,860,409 360,344,429 360,678,540 + +Present value of annual costs ($) 214,620,675 + +Present value of annual energy costs ($) 171,696,540 +Present value of annual energy nominal (kWh) 1,777,658,214 +LCOE Levelized cost of energy nominal (cents/kWh) 9.66 + +Present value of PPA revenue ($) 174,283,198 +Present value of annual energy nominal (kWh) 1,777,658,214 +LPPA Levelized PPA price nominal (cents/kWh) 9.80 + +Present value of annual heat costs ($) 42,924,135 +Present value of annual heat provided (MMBTU) 8,290,884 +LCOH Levelized cost of heating nominal ($/MMBTU) 5.18 + +PROJECT STATE INCOME TAXES +EBITDA ($) 0 38,046,988 38,411,525 38,727,934 38,999,482 39,251,515 39,488,914 39,660,373 39,403,399 39,237,460 40,003,729 40,348,137 40,631,511 40,891,114 41,136,129 41,339,193 41,251,496 40,750,976 41,585,273 41,969,607 42,264,168 42,528,377 42,776,634 42,997,589 43,028,280 42,380,964 43,120,355 43,575,467 43,886,517 44,158,527 211,610,168 +State taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State taxable IBI income ($) 0 +State taxable CBI income ($) 0 +minus: +Debt interest payment ($) 0 15,501,857 15,337,748 15,162,152 14,974,263 14,773,223 14,558,110 14,327,938 14,081,655 13,818,132 13,536,162 13,234,455 12,911,628 12,566,203 12,196,598 11,801,121 11,377,961 10,925,179 10,440,703 9,922,313 9,367,636 8,774,131 8,139,082 7,459,578 6,732,510 5,954,547 5,122,126 4,231,436 3,278,398 2,258,647 1,167,513 +Total state tax depreciation ($) 0 7,105,995 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 7,105,995 0 0 0 0 0 0 0 0 0 +equals: +State taxable income ($) 0 15,439,136 8,861,787 9,353,792 9,813,229 10,266,302 10,718,815 11,120,445 11,109,754 11,207,338 12,255,576 12,901,693 13,507,893 14,112,921 14,727,541 15,326,082 15,661,546 15,613,807 16,932,580 17,835,304 18,684,543 26,648,251 34,637,553 35,538,011 36,295,770 36,426,417 37,998,229 39,344,031 40,608,119 41,899,880 210,442,655 + +State income tax rate (frac) 0.0 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 +State tax benefit (liability) ($) 0 -702,481 -403,211 -425,598 -446,502 -467,117 -487,706 -505,980 -505,494 -509,934 -557,629 -587,027 -614,609 -642,138 -670,103 -697,337 -712,600 -710,428 -770,432 -811,506 -850,147 -1,212,495 -1,576,009 -1,616,979 -1,651,458 -1,657,402 -1,728,919 -1,790,153 -1,847,669 -1,906,445 -9,575,141 + +PROJECT FEDERAL INCOME TAXES +EBITDA ($) 0 38,046,988 38,411,525 38,727,934 38,999,482 39,251,515 39,488,914 39,660,373 39,403,399 39,237,460 40,003,729 40,348,137 40,631,511 40,891,114 41,136,129 41,339,193 41,251,496 40,750,976 41,585,273 41,969,607 42,264,168 42,528,377 42,776,634 42,997,589 43,028,280 42,380,964 43,120,355 43,575,467 43,886,517 44,158,527 211,610,168 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -702,481 -403,211 -425,598 -446,502 -467,117 -487,706 -505,980 -505,494 -509,934 -557,629 -587,027 -614,609 -642,138 -670,103 -697,337 -712,600 -710,428 -770,432 -811,506 -850,147 -1,212,495 -1,576,009 -1,616,979 -1,651,458 -1,657,402 -1,728,919 -1,790,153 -1,847,669 -1,906,445 -9,575,141 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal taxable IBI income ($) 0 +Federal taxable CBI income ($) 0 +Federal taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +minus: +Debt interest payment ($) 0 15,501,857 15,337,748 15,162,152 14,974,263 14,773,223 14,558,110 14,327,938 14,081,655 13,818,132 13,536,162 13,234,455 12,911,628 12,566,203 12,196,598 11,801,121 11,377,961 10,925,179 10,440,703 9,922,313 9,367,636 8,774,131 8,139,082 7,459,578 6,732,510 5,954,547 5,122,126 4,231,436 3,278,398 2,258,647 1,167,513 +Total federal tax depreciation ($) 0 7,105,995 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 14,211,990 7,105,995 0 0 0 0 0 0 0 0 0 +equals: +Federal taxable income ($) 0 14,736,656 8,458,575 8,928,195 9,366,727 9,799,186 10,231,109 10,614,465 10,604,260 10,697,404 11,697,948 12,314,666 12,893,284 13,470,784 14,057,438 14,628,745 14,948,945 14,903,379 16,162,148 17,023,798 17,834,396 25,435,756 33,061,544 33,921,031 34,644,313 34,769,015 36,269,310 37,553,877 38,760,449 39,993,436 200,867,514 + +Federal income tax rate (frac) 0.0 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 +Federal tax benefit (liability) ($) 0 -3,094,698 -1,776,301 -1,874,921 -1,967,013 -2,057,829 -2,148,533 -2,229,038 -2,226,895 -2,246,455 -2,456,569 -2,586,080 -2,707,590 -2,828,865 -2,952,062 -3,072,036 -3,139,278 -3,129,710 -3,394,051 -3,574,997 -3,745,223 -5,341,509 -6,942,924 -7,123,417 -7,275,306 -7,301,493 -7,616,555 -7,886,314 -8,139,694 -8,398,622 -42,182,178 + +CASH INCENTIVES +Federal IBI income ($) 0 +State IBI income ($) 0 +Utility IBI income ($) 0 +Other IBI income ($) 0 +Total IBI income ($) 0 + +Federal CBI income ($) 0 +State CBI income ($) 0 +Utility CBI income ($) 0 +Other CBI income ($) 0 +Total CBI income ($) 0 + +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +TAX CREDITS +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Federal ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC percent income ($) 0 100,319,929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC total income ($) 0 100,319,929 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +State ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC percent income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +DEBT REPAYMENT +Debt balance ($) 221,455,102 219,110,689 216,602,167 213,918,048 211,046,041 207,972,994 204,684,833 201,166,502 197,401,887 193,373,748 189,063,641 184,451,825 179,517,183 174,237,115 168,587,443 162,542,294 156,073,985 149,152,893 141,747,326 133,823,368 125,344,734 116,272,595 106,565,406 96,178,715 85,064,955 73,173,231 60,449,087 46,834,253 32,266,381 16,678,757 0 +Debt interest payment ($) 0 15,501,857 15,337,748 15,162,152 14,974,263 14,773,223 14,558,110 14,327,938 14,081,655 13,818,132 13,536,162 13,234,455 12,911,628 12,566,203 12,196,598 11,801,121 11,377,961 10,925,179 10,440,703 9,922,313 9,367,636 8,774,131 8,139,082 7,459,578 6,732,510 5,954,547 5,122,126 4,231,436 3,278,398 2,258,647 1,167,513 +Debt principal payment ($) 0 2,344,413 2,508,522 2,684,119 2,872,007 3,073,047 3,288,161 3,518,332 3,764,615 4,028,138 4,310,108 4,611,815 4,934,642 5,280,067 5,649,672 6,045,149 6,468,310 6,921,091 7,405,568 7,923,957 8,478,634 9,072,139 9,707,189 10,386,692 11,113,760 11,891,723 12,724,144 13,614,834 14,567,872 15,587,624 16,678,757 +Debt total payment ($) 0 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 + +DSCR (DEBT FRACTION) +EBITDA ($) 0 38,046,988 38,411,525 38,727,934 38,999,482 39,251,515 39,488,914 39,660,373 39,403,399 39,237,460 40,003,729 40,348,137 40,631,511 40,891,114 41,136,129 41,339,193 41,251,496 40,750,976 41,585,273 41,969,607 42,264,168 42,528,377 42,776,634 42,997,589 43,028,280 42,380,964 43,120,355 43,575,467 43,886,517 44,158,527 211,610,168 +minus: +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash available for debt service (CAFDS) ($) 0 38,046,988 38,411,525 38,727,934 38,999,482 39,251,515 39,488,914 39,660,373 39,403,399 39,237,460 40,003,729 40,348,137 40,631,511 40,891,114 41,136,129 41,339,193 41,251,496 40,750,976 41,585,273 41,969,607 42,264,168 42,528,377 42,776,634 42,997,589 43,028,280 42,380,964 43,120,355 43,575,467 43,886,517 44,158,527 211,610,168 +Debt total payment ($) 0 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 17,846,270 +DSCR (pre-tax) 0.0 2.13 2.15 2.17 2.19 2.20 2.21 2.22 2.21 2.20 2.24 2.26 2.28 2.29 2.31 2.32 2.31 2.28 2.33 2.35 2.37 2.38 2.40 2.41 2.41 2.37 2.42 2.44 2.46 2.47 11.86 + +RESERVES +Reserves working capital funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves debt service funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves total reserves balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest on reserves (%/year) 1.75 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/tests/examples/example_SAM-single-owner-PPA-7c.txt b/tests/examples/example_SAM-single-owner-PPA-7c.txt new file mode 100644 index 000000000..cce4e51fd --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-7c.txt @@ -0,0 +1,115 @@ +# Example: SAM Single Owner PPA Economic Model: Combined Heat and Power (CHP): Carbon Credits with fixed Surface Plant Capital Cost +# See documentation: https://softwareengineerprogrammer.github.io/GEOPHIRES/SAM-EM_End-Uses-and-Surface-Applications.html + +# *** ECONOMIC/FINANCIAL PARAMETERS *** +# ************************************* +Economic Model, 5, -- SAM Single Owner PPA + +Inflation Rate, .027, -- US inflation as of December 2025 + +Starting Electricity Sale Price, 0.095 +Electricity Escalation Rate Per Year, 0.00057 +Ending Electricity Sale Price, 1, -- Note that this value does not directly determine price at the end of the project life, but rather as a cap as the maximum price to which the starting price can escalate. +Electricity Escalation Start Year, 1 + +Starting Carbon Credit Value, 50 USD/tonne +Ending Carbon Credit Value, 999, -- Note that this value does not directly determine price at the end of the project life, but rather as a cap as the maximum price to which the starting price can escalate. +Carbon Escalation Rate Per Year, 0 +Units:Total Saved Carbon Production, kilotonne + +Fraction of Investment in Bonds, .7 +Discount Rate, 0.12 +Inflated Bond Interest Rate, .07 + +Inflated Bond Interest Rate During Construction, 0.105 +Bond Financing Start Year, -1 + +Construction Years, 3 + +Construction CAPEX Schedule, 0.075,0.525,0.4, -- DOE-ATB hybrid scenario + +Investment Tax Credit Rate, 0.3 +Combined Income Tax Rate, .2555 +Property Tax Rate, 0.0022 + +Surface Plant Capital Cost, 200 +CHP Electrical Plant Cost Allocation Ratio, 0.8 + +Well Drilling Cost Correlation, 3 +Well Drilling and Completion Capital Cost Adjustment Factor, 0.9, -- 2024b Geothermal ATB + +Reservoir Stimulation Capital Cost per Injection Well, 4 +Reservoir Stimulation Capital Cost per Production Well, 4 + +Field Gathering System Capital Cost Adjustment Factor, 0.35 + +# *** SURFACE & SUBSURFACE TECHNICAL PARAMETERS *** +# ************************************************* + +End-Use Option, 31, -- CHP Topping Cycle with electricity as the main product +Power Plant Type, 1, -- Subcritical ORC + +Plant Lifetime, 30 + +Surface Temperature, 13 + +Number of Segments, 3 +Gradient 1, 74 +Thickness 1, 2.5 +Gradient 2, 41 +Thickness 2, 0.5 +Gradient 3, 39.1 + +Reservoir Depth, 2.68 + +Reservoir Density, 2800 +Reservoir Heat Capacity, 790 +Reservoir Thermal Conductivity, 3.05 +Reservoir Porosity, 0.0118 + +Reservoir Model, 1, -- Multiple Parallel Fractures (Gringarten) +Reservoir Volume Option, 1, -- FRAC_NUM_SEP: Reservoir volume calculated with fracture separation and number of fractures as input + +Number of Fractures per Stimulated Well, 150 +Fracture Separation, 9.8255 + +Fracture Shape, 4, -- Rectangular +Fracture Width, 305 +Fracture Height, 100 + +Water Loss Fraction, 0.01 + +Ambient Temperature, 11.1728 + +Utilization Factor, .9 +Plant Outlet Pressure, 2000 psi +Circulation Pump Efficiency, 0.80 + +# *** Well Bores Parameters *** + +Number of Production Wells, 6 +Number of Injection Wells per Production Well, 0.666, -- 5-well bench pattern (3 producers : 2 injectors) + +Nonvertical Length per Multilateral Section, 5000 feet +Number of Multilateral Sections, 0, -- This parameter is set to 0 because the cost of horizontal drilling is included within the 'vertical drilling cost.' This approach allows us to more directly convey the overall well drilling and completion cost. + +Production Flow Rate per Well, 100 + +Production Well Diameter, 8.535, -- Inner diameter of 9⅝ inch casing size +Injection Well Diameter, 8.535, -- See Production Well Diameter + +Production Wellhead Pressure, 303 psi + +Injectivity Index, 1.38 +Productivity Index, 1.13 + +Ramey Production Wellbore Model, True, -- Ramey's model estimates the geofluid temperature drop in production wells +Injection Temperature, 47.5 +Injection Wellbore Temperature Gain, 3 + +Maximum Drawdown, 0.0025 + +# *** SIMULATION PARAMETERS *** +# ***************************** +Maximum Temperature, 500 +Time steps per year, 12 diff --git a/tests/examples/example_SAM-single-owner-PPA-7d_chp-bottoming.out b/tests/examples/example_SAM-single-owner-PPA-7d_chp-bottoming.out new file mode 100644 index 000000000..f9e2764f4 --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-7d_chp-bottoming.out @@ -0,0 +1,487 @@ + ***************** + ***CASE REPORT*** + ***************** + +Simulation Metadata +---------------------- + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-13 + Simulation Time: 08:15 + Calculation Time: 19.782 sec + + ***SUMMARY OF RESULTS*** + + End-Use Option: Cogeneration Bottoming Cycle, Heat sales considered as extra income + Average Net Electricity Production: 12.60 MW + Average Direct-Use Heat Production: 119.26 MW + Electricity breakeven price: 16.53 cents/kWh + Direct-Use heat breakeven price (LCOH): 4.33 USD/MMBTU + Total CAPEX: 216.95 MUSD + Electricity CAPEX ($/kWe): 9323 USD/kW + Heat CAPEX ($/kWth): 829 USD/kW + Number of production wells: 6 + Number of injection wells: 4 + Flowrate per production well: 100.0 kg/sec + Well depth: 2.7 kilometer + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***ECONOMIC PARAMETERS*** + + Economic Model = SAM Single Owner PPA + Real Discount Rate: 12.00 % + Nominal Discount Rate: 15.02 % + WACC: 8.57 % + Investment Tax Credit: 65.08 MUSD + Project lifetime: 30 yr + Capacity factor: 90.0 % + Project NPV: 14.59 MUSD + After-tax IRR: 20.73 % + Project VIR=PI=PIR: 1.23 + Project MOIC: 3.50 + Project Payback Period: 4.34 yr + CHP: Percent cost allocation for electrical plant: 54.19 % + + ***ENGINEERING PARAMETERS*** + + Number of Production Wells: 6 + Number of Injection Wells: 4 + Well depth: 2.7 kilometer + Water loss rate: 1.0 % + Pump efficiency: 80.0 % + Injection temperature: 50.5 degC + Production Wellbore heat transmission calculated with Ramey's model + Average production well temperature drop: 0.3 degC + Flowrate per production well: 100.0 kg/sec + Injection well casing ID: 8.535 in + Production well casing ID: 8.535 in + Number of times redrilling: 3 + Power plant type: Subcritical ORC + + + ***RESOURCE CHARACTERISTICS*** + + Maximum reservoir temperature: 500.0 degC + Number of segments: 3 + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***RESERVOIR PARAMETERS*** + + Reservoir Model = Multiple Parallel Fractures Model (Gringarten) + Bottom-hole temperature: 205.38 degC + Fracture model = Rectangular + Well separation: fracture height: 100.00 meter + Fracture width: 305.00 meter + Fracture area: 30500.00 m**2 + Reservoir volume calculated with fracture separation and number of fractures as input + Number of fractures: 1500 + Fracture separation: 9.83 meter + Reservoir volume: 449216947 m**3 + Reservoir hydrostatic pressure: 25324.54 kPa + Plant outlet pressure: 13789.51 kPa + Production wellhead pressure: 2089.11 kPa + Productivity Index: 1.13 kg/sec/bar + Injectivity Index: 1.38 kg/sec/bar + Reservoir density: 2800.00 kg/m**3 + Reservoir thermal conductivity: 3.05 W/m/K + Reservoir heat capacity: 790.00 J/kg/K + + + ***RESERVOIR SIMULATION RESULTS*** + + Maximum Production Temperature: 203.1 degC + Average Production Temperature: 202.8 degC + Minimum Production Temperature: 201.3 degC + Initial Production Temperature: 201.6 degC + Average Reservoir Heat Extraction: 382.08 MW + Production Wellbore Heat Transmission Model = Ramey Model + Average Production Well Temperature Drop: 0.3 degC + Average Injection Well Pump Pressure Drop: -2003.9 kPa + Average Production Well Pump Pressure Drop: 9514.2 kPa + + + ***CAPITAL COSTS (M$)*** + + Exploration costs: 4.71 MUSD + Drilling and completion costs: 46.49 MUSD + Drilling and completion costs per well: 4.65 MUSD + Stimulation costs: 48.30 MUSD + Surface power plant costs: 93.68 MUSD + of which Electrical Plant Cost: 50.77 MUSD + of which Heat Plant Cost: 42.91 MUSD + Field gathering system costs: 3.20 MUSD + Total surface equipment costs: 96.88 MUSD + Overnight Capital Cost: 196.38 MUSD + Inflation costs during construction: 12.58 MUSD + Interest during construction: 7.99 MUSD + Total CAPEX: 216.95 MUSD + + + ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** + + Wellfield maintenance costs: 1.12 MUSD/yr + Power plant maintenance costs: 3.26 MUSD/yr + Water costs: 0.16 MUSD/yr + Redrilling costs: 9.48 MUSD/yr + Total operating and maintenance costs: 14.01 MUSD/yr + + + ***SURFACE EQUIPMENT SIMULATION RESULTS*** + Initial geofluid availability: 0.11 MW/(kg/s) + Maximum Total Electricity Generation: 20.75 MW + Average Total Electricity Generation: 20.75 MW + Minimum Total Electricity Generation: 20.75 MW + Initial Total Electricity Generation: 20.75 MW + Maximum Net Electricity Generation: 12.61 MW + Average Net Electricity Generation: 12.60 MW + Minimum Net Electricity Generation: 12.57 MW + Initial Net Electricity Generation: 12.59 MW + Average Annual Total Electricity Generation: 163.56 GWh + Average Annual Net Electricity Generation: 99.38 GWh + Initial pumping power/net installed power: 64.72 % + Maximum Net Heat Production: 119.94 MW + Average Net Heat Production: 119.26 MW + Minimum Net Heat Production: 115.90 MW + Initial Net Heat Production: 116.58 MW + Average Annual Heat Production: 940.31 GWh + Average Pumping Power: 8.14 MW + Heat to Power Conversion Efficiency: 5.05 % + + ************************************************************ + * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ************************************************************ + YEAR THERMAL GEOFLUID PUMP NET NET FIRST LAW + DRAWDOWN TEMPERATURE POWER POWER HEAT EFFICIENCY + (deg C) (MW) (MW) (MW) (%) + 0 1.0000 201.64 8.1512 12.5944 116.5786 5.0466 + 1 1.0052 202.70 8.1476 12.5980 118.9568 5.0480 + 2 1.0062 202.89 8.1469 12.5986 119.3983 5.0483 + 3 1.0067 202.99 8.1466 12.5990 119.6280 5.0484 + 4 1.0070 203.06 8.1464 12.5992 119.7799 5.0485 + 5 1.0073 203.11 8.1462 12.5994 119.8908 5.0486 + 6 1.0074 203.13 8.1463 12.5993 119.9428 5.0486 + 7 1.0066 202.97 8.1489 12.5967 119.5757 5.0475 + 8 1.0007 201.78 8.1656 12.5800 116.8823 5.0408 + 9 1.0048 202.61 8.1453 12.6002 118.7524 5.0489 + 10 1.0060 202.86 8.1444 12.6012 119.3184 5.0493 + 11 1.0066 202.97 8.1428 12.6027 119.5803 5.0499 + 12 1.0070 203.05 8.1408 12.6048 119.7466 5.0508 + 13 1.0072 203.10 8.1387 12.6069 119.8662 5.0516 + 14 1.0074 203.13 8.1370 12.6085 119.9426 5.0523 + 15 1.0070 203.06 8.1373 12.6082 119.7657 5.0521 + 16 1.0031 202.27 8.1479 12.5976 117.9939 5.0479 + 17 1.0041 202.47 8.1345 12.6110 118.4398 5.0533 + 18 1.0058 202.82 8.1344 12.6112 119.2231 5.0533 + 19 1.0065 202.95 8.1343 12.6112 119.5271 5.0533 + 20 1.0069 203.03 8.1343 12.6112 119.7105 5.0533 + 21 1.0072 203.09 8.1343 12.6112 119.8395 5.0533 + 22 1.0074 203.13 8.1344 12.6112 119.9310 5.0533 + 23 1.0072 203.10 8.1353 12.6103 119.8714 5.0530 + 24 1.0048 202.61 8.1426 12.6030 118.7557 5.0500 + 25 1.0027 202.20 8.1344 12.6112 117.8263 5.0533 + 26 1.0056 202.76 8.1344 12.6112 119.1063 5.0533 + 27 1.0063 202.92 8.1344 12.6111 119.4670 5.0533 + 28 1.0068 203.01 8.1344 12.6111 119.6711 5.0533 + 29 1.0071 203.08 8.1344 12.6111 119.8108 5.0533 + + + ******************************************************************* + * ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ******************************************************************* + YEAR HEAT ELECTRICITY HEAT RESERVOIR PERCENTAGE OF + PROVIDED PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED + (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%) + 1 931.7 99.3 3002.77 143.09 7.02 + 2 939.8 99.3 3011.81 132.25 14.07 + 3 942.3 99.3 3014.56 121.39 21.12 + 4 943.8 99.3 3016.19 110.54 28.18 + 5 944.8 99.3 3017.33 99.67 35.23 + 6 945.5 99.3 3018.10 88.81 42.29 + 7 944.8 99.3 3017.30 77.95 49.35 + 8 934.9 99.3 3006.30 67.12 56.38 + 9 926.7 99.3 2997.27 56.33 63.40 + 10 938.9 99.3 3010.72 45.49 70.44 + 11 941.8 99.4 3014.03 34.64 77.49 + 12 943.5 99.4 3015.84 23.79 84.54 + 13 944.6 99.4 3017.08 12.93 91.60 + 14 945.4 99.4 3017.96 2.06 98.66 + 15 945.3 99.4 3017.88 -8.80 105.72 + 16 939.2 99.4 3011.14 -19.64 112.76 + 17 924.5 99.4 2994.77 -30.42 119.77 + 18 937.5 99.4 3009.26 -41.26 126.81 + 19 941.3 99.4 3013.41 -52.11 133.86 + 20 943.1 99.4 3015.46 -62.96 140.91 + 21 944.3 99.4 3016.81 -73.82 147.97 + 22 945.2 99.4 3017.78 -84.69 155.03 + 23 945.5 99.4 3018.13 -95.55 162.09 + 24 942.0 99.4 3014.27 -106.40 169.14 + 25 924.9 99.3 2995.26 -117.19 176.14 + 26 935.6 99.4 3007.08 -128.01 183.18 + 27 940.6 99.4 3012.68 -138.86 190.23 + 28 942.7 99.4 3015.04 -149.71 197.28 + 29 944.1 99.4 3016.51 -160.57 204.33 + 30 945.0 99.4 3017.53 -171.43 211.39 + + *************************** + * SAM CASH FLOW PROFILE * + *************************** +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + Year -2 Year -1 Year 0 Year 1 Year 2 Year 3 Year 4 Year 5 Year 6 Year 7 Year 8 Year 9 Year 10 Year 11 Year 12 Year 13 Year 14 Year 15 Year 16 Year 17 Year 18 Year 19 Year 20 Year 21 Year 22 Year 23 Year 24 Year 25 Year 26 Year 27 Year 28 Year 29 Year 30 +CONSTRUCTION +Capital expenditure schedule [construction] (%) 7.50 52.50 40.0 +Overnight capital expenditure [construction] ($) -14,728,311 -103,098,179 -78,550,993 +plus: +Inflation cost [construction] ($) -397,664 -5,642,460 -6,535,968 +plus: +Royalty supplemental payments [construction] ($) 0 0 0 +equals: +Nominal capital expenditure [construction] ($) -15,125,976 -108,740,639 -85,086,961 + +Issuance of equity [construction] ($) 15,125,976 32,622,192 25,526,088 +Issuance of debt [construction] ($) 0 76,118,447 59,560,873 +Debt balance [construction] ($) 0 76,118,447 143,671,757 +Debt interest payment [construction] ($) 0 0 7,992,437 + +Installed cost [construction] ($) -15,125,976 -108,740,639 -93,079,398 +After-tax net cash flow [construction] ($) -15,125,976 -32,622,192 -25,526,088 + +ENERGY +Electricity to grid (kWh) 0.0 99,313,020 99,325,280 99,329,015 99,331,224 99,332,758 99,333,410 99,326,056 99,263,098 99,299,889 99,343,578 99,353,413 99,367,844 99,384,484 99,399,741 99,407,107 99,373,923 99,353,075 99,425,902 99,426,682 99,426,900 99,426,896 99,426,722 99,424,262 99,399,069 99,334,982 99,426,375 99,426,270 99,426,172 99,426,080 99,425,968 +Electricity from grid (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +Electricity to grid net (kWh) 0.0 99,313,020 99,325,280 99,329,015 99,331,224 99,332,758 99,333,410 99,326,056 99,263,098 99,299,889 99,343,578 99,353,413 99,367,844 99,384,484 99,399,741 99,407,107 99,373,923 99,353,075 99,425,902 99,426,682 99,426,900 99,426,896 99,426,722 99,424,262 99,399,069 99,334,982 99,426,375 99,426,270 99,426,172 99,426,080 99,425,968 + +Heat provided (kWh) 0 931,699,281 939,837,015 942,314,903 943,780,012 944,803,489 945,499,436 944,774,210 934,877,845 926,746,908 938,852,768 941,831,559 943,466,861 944,576,394 945,370,981 945,297,400 939,235,023 924,500,003 937,543,301 941,275,541 943,122,781 944,331,534 945,204,571 945,521,883 942,046,428 924,943,564 935,582,993 940,623,153 942,741,549 944,067,007 944,981,487 + +REVENUE +PPA price (cents/kWh) 0.0 9.50 9.50 9.56 9.61 9.67 9.73 9.79 9.84 9.90 9.96 10.01 10.07 10.13 10.18 10.24 10.30 10.36 10.41 10.47 10.53 10.58 10.64 10.70 10.75 10.81 10.87 10.93 10.98 11.04 11.10 +PPA revenue ($) 0 9,434,737 9,435,902 9,492,874 9,549,704 9,606,471 9,663,154 9,719,055 9,769,474 9,829,696 9,890,647 9,948,257 10,006,342 10,064,667 10,122,870 10,180,282 10,233,527 10,288,011 10,352,225 10,408,979 10,465,675 10,522,348 10,579,003 10,635,413 10,689,376 10,739,105 10,805,658 10,862,320 10,918,982 10,975,645 11,032,305 +Curtailment payment revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Heat price ($/kWh) 0.0 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 +Heat revenue ($) 0 23,292,482 23,495,925 23,557,873 23,594,500 23,620,087 23,637,486 23,619,355 23,371,946 23,168,673 23,471,319 23,545,789 23,586,672 23,614,410 23,634,275 23,632,435 23,480,876 23,112,500 23,438,583 23,531,889 23,578,070 23,608,288 23,630,114 23,638,047 23,551,161 23,123,589 23,389,575 23,515,579 23,568,539 23,601,675 23,624,537 +equals: +Capacity payment revenue ($) 0 23,292,482 23,495,925 23,557,873 23,594,500 23,620,087 23,637,486 23,619,355 23,371,946 23,168,673 23,471,319 23,545,789 23,586,672 23,614,410 23,634,275 23,632,435 23,480,876 23,112,500 23,438,583 23,531,889 23,578,070 23,608,288 23,630,114 23,638,047 23,551,161 23,123,589 23,389,575 23,515,579 23,568,539 23,601,675 23,624,537 + +Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 108,473,006 +Total revenue ($) 0 32,727,219 32,931,827 33,050,747 33,144,204 33,226,558 33,300,640 33,338,410 33,141,420 32,998,369 33,361,966 33,494,046 33,593,014 33,679,077 33,757,145 33,812,717 33,714,403 33,400,511 33,790,808 33,940,868 34,043,745 34,130,636 34,209,117 34,273,460 34,240,537 33,862,694 34,195,233 34,377,899 34,487,521 34,577,320 143,129,849 + +Property tax net assessed value ($) 0 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 216,946,013 + +OPERATING EXPENSES +O&M fixed expense ($) 0 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 14,014,665 +O&M production-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +O&M capacity-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Fuel expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Electricity purchase ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Property tax expense ($) 0 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 477,281 +Insurance expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total operating expenses ($) 0 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 14,491,946 + +EBITDA ($) 0 18,235,273 18,439,881 18,558,801 18,652,258 18,734,612 18,808,694 18,846,464 18,649,474 18,506,423 18,870,020 19,002,100 19,101,068 19,187,131 19,265,199 19,320,771 19,222,457 18,908,565 19,298,862 19,448,922 19,551,800 19,638,690 19,717,171 19,781,514 19,748,591 19,370,748 19,703,287 19,885,953 19,995,575 20,085,374 128,637,903 + +OPERATING ACTIVITIES +EBITDA ($) 0 18,235,273 18,439,881 18,558,801 18,652,258 18,734,612 18,808,694 18,846,464 18,649,474 18,506,423 18,870,020 19,002,100 19,101,068 19,187,131 19,265,199 19,320,771 19,222,457 18,908,565 19,298,862 19,448,922 19,551,800 19,638,690 19,717,171 19,781,514 19,748,591 19,370,748 19,703,287 19,885,953 19,995,575 20,085,374 128,637,903 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +plus PBI if not available for debt service: +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Debt interest payment ($) 0 10,057,023 9,950,555 9,836,635 9,714,740 9,584,312 9,444,755 9,295,429 9,135,649 8,964,685 8,781,754 8,586,018 8,376,579 8,152,481 7,912,695 7,656,124 7,381,594 7,087,846 6,773,536 6,437,224 6,077,370 5,692,327 5,280,331 4,839,494 4,367,800 3,863,086 3,323,043 2,745,197 2,126,901 1,465,325 757,439 +Cash flow from operating activities ($) 0 8,178,250 8,489,325 8,722,166 8,937,518 9,150,300 9,363,939 9,551,035 9,513,825 9,541,738 10,088,266 10,416,083 10,724,489 11,034,650 11,352,504 11,664,647 11,840,863 11,820,719 12,525,326 13,011,698 13,474,429 13,946,363 14,436,841 14,942,020 15,380,791 15,507,661 16,380,244 17,140,756 17,868,674 18,620,049 127,880,464 + +INVESTING ACTIVITIES +Total installed cost ($) -216,946,013 +Debt closing costs ($) 0 +Debt up-front fee ($) 0 +minus: +Total IBI income ($) 0 +Total CBI income ($) 0 +equals: +Purchase of property ($) -216,946,013 +plus: +Reserve (increase)/decrease debt service ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease working capital ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease receivables ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash flow from investing activities ($) -216,946,013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +FINANCING ACTIVITIES +Issuance of equity ($) 73,274,256 +Size of debt ($) 143,671,757 +minus: +Debt principal payment ($) 0 1,520,967 1,627,435 1,741,355 1,863,250 1,993,678 2,133,235 2,282,562 2,442,341 2,613,305 2,796,236 2,991,973 3,201,411 3,425,510 3,665,295 3,921,866 4,196,396 4,490,144 4,804,454 5,140,766 5,500,620 5,885,663 6,297,660 6,738,496 7,210,190 7,714,904 8,254,947 8,832,793 9,451,089 10,112,665 10,820,552 +equals: +Cash flow from financing activities ($) 216,946,013 -1,520,967 -1,627,435 -1,741,355 -1,863,250 -1,993,678 -2,133,235 -2,282,562 -2,442,341 -2,613,305 -2,796,236 -2,991,973 -3,201,411 -3,425,510 -3,665,295 -3,921,866 -4,196,396 -4,490,144 -4,804,454 -5,140,766 -5,500,620 -5,885,663 -6,297,660 -6,738,496 -7,210,190 -7,714,904 -8,254,947 -8,832,793 -9,451,089 -10,112,665 -10,820,552 + +PROJECT RETURNS +Pre-tax Cash Flow: +Cash flow from operating activities ($) 0 8,178,250 8,489,325 8,722,166 8,937,518 9,150,300 9,363,939 9,551,035 9,513,825 9,541,738 10,088,266 10,416,083 10,724,489 11,034,650 11,352,504 11,664,647 11,840,863 11,820,719 12,525,326 13,011,698 13,474,429 13,946,363 14,436,841 14,942,020 15,380,791 15,507,661 16,380,244 17,140,756 17,868,674 18,620,049 127,880,464 +Cash flow from investing activities ($) -216,946,013 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Cash flow from financing activities ($) 216,946,013 -1,520,967 -1,627,435 -1,741,355 -1,863,250 -1,993,678 -2,133,235 -2,282,562 -2,442,341 -2,613,305 -2,796,236 -2,991,973 -3,201,411 -3,425,510 -3,665,295 -3,921,866 -4,196,396 -4,490,144 -4,804,454 -5,140,766 -5,500,620 -5,885,663 -6,297,660 -6,738,496 -7,210,190 -7,714,904 -8,254,947 -8,832,793 -9,451,089 -10,112,665 -10,820,552 +Total pre-tax cash flow ($) 0 6,657,283 6,861,890 6,980,811 7,074,268 7,156,622 7,230,704 7,268,473 7,071,484 6,928,433 7,292,030 7,424,110 7,523,078 7,609,141 7,687,208 7,742,781 7,644,466 7,330,575 7,720,872 7,870,932 7,973,809 8,060,700 8,139,181 8,203,524 8,170,601 7,792,758 8,125,297 8,307,963 8,417,585 8,507,384 117,059,913 + +Pre-tax Returns: +Issuance of equity ($) 73,274,256 +Total pre-tax cash flow ($) 0 6,657,283 6,861,890 6,980,811 7,074,268 7,156,622 7,230,704 7,268,473 7,071,484 6,928,433 7,292,030 7,424,110 7,523,078 7,609,141 7,687,208 7,742,781 7,644,466 7,330,575 7,720,872 7,870,932 7,973,809 8,060,700 8,139,181 8,203,524 8,170,601 7,792,758 8,125,297 8,307,963 8,417,585 8,507,384 117,059,913 +Total pre-tax returns ($) -73,274,256 6,657,283 6,861,890 6,980,811 7,074,268 7,156,622 7,230,704 7,268,473 7,071,484 6,928,433 7,292,030 7,424,110 7,523,078 7,609,141 7,687,208 7,742,781 7,644,466 7,330,575 7,720,872 7,870,932 7,973,809 8,060,700 8,139,181 8,203,524 8,170,601 7,792,758 8,125,297 8,307,963 8,417,585 8,507,384 117,059,913 + +After-tax Returns: +Total pre-tax returns ($) -73,274,256 6,657,283 6,861,890 6,980,811 7,074,268 7,156,622 7,230,704 7,268,473 7,071,484 6,928,433 7,292,030 7,424,110 7,523,078 7,609,141 7,687,208 7,742,781 7,644,466 7,330,575 7,720,872 7,870,932 7,973,809 8,060,700 8,139,181 8,203,524 8,170,601 7,792,758 8,125,297 8,307,963 8,417,585 8,507,384 117,059,913 +Federal ITC total income ($) 0 65,083,804 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal tax benefit (liability) ($) 0 -715,217 146,501 99,829 56,663 14,012 -28,811 -66,313 -58,855 -64,450 -173,998 -239,708 -301,526 -363,696 -427,408 -489,976 -525,298 -521,260 -662,495 -759,986 -852,738 -1,871,407 -2,893,793 -2,995,053 -3,083,003 -3,108,433 -3,283,338 -3,435,779 -3,581,686 -3,732,296 -25,633,000 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -162,351 33,255 22,661 12,862 3,181 -6,540 -15,053 -13,360 -14,630 -39,497 -54,412 -68,445 -82,557 -97,020 -111,222 -119,240 -118,323 -150,383 -172,513 -193,567 -424,800 -656,876 -679,862 -699,826 -705,599 -745,301 -779,904 -813,025 -847,212 -5,818,561 +Total after-tax returns ($) -73,274,256 70,863,519 7,041,647 7,103,301 7,143,793 7,173,815 7,195,353 7,187,108 6,999,270 6,849,354 7,078,534 7,129,990 7,153,107 7,162,887 7,162,780 7,141,583 6,999,929 6,690,992 6,907,994 6,938,434 6,927,504 5,764,494 4,588,512 4,528,609 4,387,772 3,978,726 4,096,658 4,092,280 4,022,874 3,927,876 85,608,352 + +After-tax net cash flow ($) -15,125,976 -32,622,192 -25,526,088 70,863,519 7,041,647 7,103,301 7,143,793 7,173,815 7,195,353 7,187,108 6,999,270 6,849,354 7,078,534 7,129,990 7,153,107 7,162,887 7,162,780 7,141,583 6,999,929 6,690,992 6,907,994 6,938,434 6,927,504 5,764,494 4,588,512 4,528,609 4,387,772 3,978,726 4,096,658 4,092,280 4,022,874 3,927,876 85,608,352 +After-tax cumulative IRR (%) NaN NaN NaN -1.79 3.18 7.28 10.45 12.84 14.65 16.00 17.01 17.77 18.38 18.86 19.23 19.53 19.77 19.96 20.11 20.22 20.32 20.40 20.46 20.50 20.53 20.56 20.57 20.59 20.60 20.61 20.62 20.62 20.74 +After-tax cumulative NPV ($) -15,125,976 -43,487,181 -62,780,517 -16,215,762 -12,193,037 -8,665,124 -5,580,529 -2,887,563 -539,313 1,499,878 3,226,384 4,695,231 6,014,951 7,170,634 8,178,624 9,056,152 9,819,050 10,480,338 11,043,847 11,512,132 11,932,454 12,299,486 12,618,075 12,848,551 13,008,047 13,144,899 13,260,177 13,351,054 13,432,403 13,503,051 13,563,430 13,614,682 14,585,830 + +AFTER-TAX LCOE AND PPA PRICE +Annual costs ($) -15,125,976 -32,622,192 -25,526,088 38,136,300 -25,890,180 -25,947,446 -26,000,411 -26,052,743 -26,105,287 -26,151,302 -26,142,150 -26,149,015 -26,283,431 -26,364,056 -26,439,907 -26,516,190 -26,594,364 -26,671,134 -26,714,474 -26,709,519 -26,882,814 -27,002,435 -27,116,241 -28,366,143 -29,620,605 -29,744,851 -29,852,765 -29,883,968 -30,098,575 -30,285,619 -30,464,647 -30,649,444 50,951,510 +PPA revenue ($) 0 0 0 9,434,737 9,435,902 9,492,874 9,549,704 9,606,471 9,663,154 9,719,055 9,769,474 9,829,696 9,890,647 9,948,257 10,006,342 10,064,667 10,122,870 10,180,282 10,233,527 10,288,011 10,352,225 10,408,979 10,465,675 10,522,348 10,579,003 10,635,413 10,689,376 10,739,105 10,805,658 10,862,320 10,918,982 10,975,645 11,032,305 +Electricity to grid (kWh) 0 0 0 99,313,020 99,325,280 99,329,015 99,331,224 99,332,758 99,333,410 99,326,056 99,263,098 99,299,889 99,343,578 99,353,413 99,367,844 99,384,484 99,399,741 99,407,107 99,373,923 99,353,075 99,425,902 99,426,682 99,426,900 99,426,896 99,426,722 99,424,262 99,399,069 99,334,982 99,426,375 99,426,270 99,426,172 99,426,080 99,425,968 + +Present value of annual costs ($) 150,110,910 + +Present value of annual energy costs ($) 81,348,720 +Present value of annual energy nominal (kWh) 492,246,912 +LCOE Levelized cost of energy nominal (cents/kWh) 16.53 + +Present value of PPA revenue ($) 48,259,824 +Present value of annual energy nominal (kWh) 492,246,912 +LPPA Levelized PPA price nominal (cents/kWh) 9.80 + +Present value of annual heat costs ($) 68,762,190 +Present value of annual heat provided (MMBTU) 15,891,967 +LCOH Levelized cost of heating nominal ($/MMBTU) 4.33 + +PROJECT STATE INCOME TAXES +EBITDA ($) 0 18,235,273 18,439,881 18,558,801 18,652,258 18,734,612 18,808,694 18,846,464 18,649,474 18,506,423 18,870,020 19,002,100 19,101,068 19,187,131 19,265,199 19,320,771 19,222,457 18,908,565 19,298,862 19,448,922 19,551,800 19,638,690 19,717,171 19,781,514 19,748,591 19,370,748 19,703,287 19,885,953 19,995,575 20,085,374 128,637,903 +State taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State taxable IBI income ($) 0 +State taxable CBI income ($) 0 +minus: +Debt interest payment ($) 0 10,057,023 9,950,555 9,836,635 9,714,740 9,584,312 9,444,755 9,295,429 9,135,649 8,964,685 8,781,754 8,586,018 8,376,579 8,152,481 7,912,695 7,656,124 7,381,594 7,087,846 6,773,536 6,437,224 6,077,370 5,692,327 5,280,331 4,839,494 4,367,800 3,863,086 3,323,043 2,745,197 2,126,901 1,465,325 757,439 +Total state tax depreciation ($) 0 4,610,103 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 4,610,103 0 0 0 0 0 0 0 0 0 +equals: +State taxable income ($) 0 3,568,147 -730,880 -498,039 -282,688 -69,906 143,734 330,830 293,619 321,532 868,060 1,195,877 1,504,283 1,814,445 2,132,298 2,444,441 2,620,657 2,600,513 3,305,121 3,791,493 4,254,224 9,336,261 14,436,841 14,942,020 15,380,791 15,507,661 16,380,244 17,140,756 17,868,674 18,620,049 127,880,464 + +State income tax rate (frac) 0.0 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 +State tax benefit (liability) ($) 0 -162,351 33,255 22,661 12,862 3,181 -6,540 -15,053 -13,360 -14,630 -39,497 -54,412 -68,445 -82,557 -97,020 -111,222 -119,240 -118,323 -150,383 -172,513 -193,567 -424,800 -656,876 -679,862 -699,826 -705,599 -745,301 -779,904 -813,025 -847,212 -5,818,561 + +PROJECT FEDERAL INCOME TAXES +EBITDA ($) 0 18,235,273 18,439,881 18,558,801 18,652,258 18,734,612 18,808,694 18,846,464 18,649,474 18,506,423 18,870,020 19,002,100 19,101,068 19,187,131 19,265,199 19,320,771 19,222,457 18,908,565 19,298,862 19,448,922 19,551,800 19,638,690 19,717,171 19,781,514 19,748,591 19,370,748 19,703,287 19,885,953 19,995,575 20,085,374 128,637,903 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -162,351 33,255 22,661 12,862 3,181 -6,540 -15,053 -13,360 -14,630 -39,497 -54,412 -68,445 -82,557 -97,020 -111,222 -119,240 -118,323 -150,383 -172,513 -193,567 -424,800 -656,876 -679,862 -699,826 -705,599 -745,301 -779,904 -813,025 -847,212 -5,818,561 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal taxable IBI income ($) 0 +Federal taxable CBI income ($) 0 +Federal taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +minus: +Debt interest payment ($) 0 10,057,023 9,950,555 9,836,635 9,714,740 9,584,312 9,444,755 9,295,429 9,135,649 8,964,685 8,781,754 8,586,018 8,376,579 8,152,481 7,912,695 7,656,124 7,381,594 7,087,846 6,773,536 6,437,224 6,077,370 5,692,327 5,280,331 4,839,494 4,367,800 3,863,086 3,323,043 2,745,197 2,126,901 1,465,325 757,439 +Total federal tax depreciation ($) 0 4,610,103 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 9,220,206 4,610,103 0 0 0 0 0 0 0 0 0 +equals: +Federal taxable income ($) 0 3,405,796 -697,625 -475,379 -269,825 -66,725 137,194 315,777 280,260 306,902 828,563 1,141,465 1,435,838 1,731,887 2,035,279 2,333,219 2,501,417 2,482,190 3,154,738 3,618,980 4,060,656 8,911,461 13,779,964 14,262,158 14,680,965 14,802,063 15,634,943 16,360,852 17,055,649 17,772,837 122,061,903 + +Federal income tax rate (frac) 0.0 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 +Federal tax benefit (liability) ($) 0 -715,217 146,501 99,829 56,663 14,012 -28,811 -66,313 -58,855 -64,450 -173,998 -239,708 -301,526 -363,696 -427,408 -489,976 -525,298 -521,260 -662,495 -759,986 -852,738 -1,871,407 -2,893,793 -2,995,053 -3,083,003 -3,108,433 -3,283,338 -3,435,779 -3,581,686 -3,732,296 -25,633,000 + +CASH INCENTIVES +Federal IBI income ($) 0 +State IBI income ($) 0 +Utility IBI income ($) 0 +Other IBI income ($) 0 +Total IBI income ($) 0 + +Federal CBI income ($) 0 +State CBI income ($) 0 +Utility CBI income ($) 0 +Other CBI income ($) 0 +Total CBI income ($) 0 + +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +TAX CREDITS +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Federal ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC percent income ($) 0 65,083,804 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC total income ($) 0 65,083,804 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +State ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC percent income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +DEBT REPAYMENT +Debt balance ($) 143,671,757 142,150,790 140,523,355 138,782,000 136,918,750 134,925,072 132,791,837 130,509,275 128,066,934 125,453,629 122,657,393 119,665,420 116,464,010 113,038,500 109,373,205 105,451,339 101,254,943 96,764,798 91,960,344 86,819,578 81,318,958 75,433,295 69,135,636 62,397,140 55,186,949 47,472,046 39,217,099 30,384,305 20,933,217 10,820,552 0 +Debt interest payment ($) 0 10,057,023 9,950,555 9,836,635 9,714,740 9,584,312 9,444,755 9,295,429 9,135,649 8,964,685 8,781,754 8,586,018 8,376,579 8,152,481 7,912,695 7,656,124 7,381,594 7,087,846 6,773,536 6,437,224 6,077,370 5,692,327 5,280,331 4,839,494 4,367,800 3,863,086 3,323,043 2,745,197 2,126,901 1,465,325 757,439 +Debt principal payment ($) 0 1,520,967 1,627,435 1,741,355 1,863,250 1,993,678 2,133,235 2,282,562 2,442,341 2,613,305 2,796,236 2,991,973 3,201,411 3,425,510 3,665,295 3,921,866 4,196,396 4,490,144 4,804,454 5,140,766 5,500,620 5,885,663 6,297,660 6,738,496 7,210,190 7,714,904 8,254,947 8,832,793 9,451,089 10,112,665 10,820,552 +Debt total payment ($) 0 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 + +DSCR (DEBT FRACTION) +EBITDA ($) 0 18,235,273 18,439,881 18,558,801 18,652,258 18,734,612 18,808,694 18,846,464 18,649,474 18,506,423 18,870,020 19,002,100 19,101,068 19,187,131 19,265,199 19,320,771 19,222,457 18,908,565 19,298,862 19,448,922 19,551,800 19,638,690 19,717,171 19,781,514 19,748,591 19,370,748 19,703,287 19,885,953 19,995,575 20,085,374 128,637,903 +minus: +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash available for debt service (CAFDS) ($) 0 18,235,273 18,439,881 18,558,801 18,652,258 18,734,612 18,808,694 18,846,464 18,649,474 18,506,423 18,870,020 19,002,100 19,101,068 19,187,131 19,265,199 19,320,771 19,222,457 18,908,565 19,298,862 19,448,922 19,551,800 19,638,690 19,717,171 19,781,514 19,748,591 19,370,748 19,703,287 19,885,953 19,995,575 20,085,374 128,637,903 +Debt total payment ($) 0 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 11,577,990 +DSCR (pre-tax) 0.0 1.57 1.59 1.60 1.61 1.62 1.62 1.63 1.61 1.60 1.63 1.64 1.65 1.66 1.66 1.67 1.66 1.63 1.67 1.68 1.69 1.70 1.70 1.71 1.71 1.67 1.70 1.72 1.73 1.73 11.11 + +RESERVES +Reserves working capital funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves debt service funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves total reserves balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest on reserves (%/year) 1.75 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/tests/examples/example_SAM-single-owner-PPA-7d_chp-bottoming.txt b/tests/examples/example_SAM-single-owner-PPA-7d_chp-bottoming.txt new file mode 100644 index 000000000..4f3508383 --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-7d_chp-bottoming.txt @@ -0,0 +1,109 @@ +# Example: SAM Single Owner PPA Economic Model: Combined Heat and Power (CHP): Cogeneration Bottoming Cycle +# See documentation: https://softwareengineerprogrammer.github.io/GEOPHIRES/SAM-EM_End-Uses-and-Surface-Applications.html + +# *** ECONOMIC/FINANCIAL PARAMETERS *** +# ************************************* +Economic Model, 5, -- SAM Single Owner PPA + +Inflation Rate, .027, -- US inflation as of December 2025 + +Starting Electricity Sale Price, 0.095 +Electricity Escalation Rate Per Year, 0.00057 +Ending Electricity Sale Price, 1, -- Note that this value does not directly determine price at the end of the project life, but rather as a cap as the maximum price to which the starting price can escalate. +Electricity Escalation Start Year, 1 + +Fraction of Investment in Bonds, .7 +Discount Rate, 0.12 +Inflated Bond Interest Rate, .07 + +Inflated Bond Interest Rate During Construction, 0.105 +Bond Financing Start Year, -1 + +Construction Years, 3 + +Construction CAPEX Schedule, 0.075,0.525,0.4, -- DOE-ATB hybrid scenario + +Investment Tax Credit Rate, 0.3 +Combined Income Tax Rate, .2555 +Property Tax Rate, 0.0022 + +Capital Cost for Power Plant for Electricity Generation, 1900 + +Well Drilling Cost Correlation, 3 +Well Drilling and Completion Capital Cost Adjustment Factor, 0.9, -- 2024b Geothermal ATB + +Reservoir Stimulation Capital Cost per Injection Well, 4 +Reservoir Stimulation Capital Cost per Production Well, 4 + +Field Gathering System Capital Cost Adjustment Factor, 0.35 + +# *** SURFACE & SUBSURFACE TECHNICAL PARAMETERS *** +# ************************************************* + +End-Use Option, 41, -- COGENERATION_BOTTOMING_EXTRA_HEAT +Power Plant Type, 1, -- Subcritical ORC + +Plant Lifetime, 30 + +Surface Temperature, 13 + +Number of Segments, 3 +Gradient 1, 74 +Thickness 1, 2.5 +Gradient 2, 41 +Thickness 2, 0.5 +Gradient 3, 39.1 + +Reservoir Depth, 2.68 + +Reservoir Density, 2800 +Reservoir Heat Capacity, 790 +Reservoir Thermal Conductivity, 3.05 +Reservoir Porosity, 0.0118 + +Reservoir Model, 1, -- Multiple Parallel Fractures (Gringarten) +Reservoir Volume Option, 1, -- FRAC_NUM_SEP: Reservoir volume calculated with fracture separation and number of fractures as input + +Number of Fractures per Stimulated Well, 150 +Fracture Separation, 9.8255 + +Fracture Shape, 4, -- Rectangular +Fracture Width, 305 +Fracture Height, 100 + +Water Loss Fraction, 0.01 + +Ambient Temperature, 11.1728 + +Utilization Factor, .9 +Plant Outlet Pressure, 2000 psi +Circulation Pump Efficiency, 0.80 + +# *** Well Bores Parameters *** + +Number of Production Wells, 6 +Number of Injection Wells per Production Well, 0.666, -- 5-well bench pattern (3 producers : 2 injectors) + +Nonvertical Length per Multilateral Section, 5000 feet +Number of Multilateral Sections, 0, -- This parameter is set to 0 because the cost of horizontal drilling is included within the 'vertical drilling cost.' This approach allows us to more directly convey the overall well drilling and completion cost. + +Production Flow Rate per Well, 100 + +Production Well Diameter, 8.535, -- Inner diameter of 9⅝ inch casing size +Injection Well Diameter, 8.535, -- See Production Well Diameter + +Production Wellhead Pressure, 303 psi + +Injectivity Index, 1.38 +Productivity Index, 1.13 + +Ramey Production Wellbore Model, True, -- Ramey's model estimates the geofluid temperature drop in production wells +Injection Temperature, 47.5 +Injection Wellbore Temperature Gain, 3 + +Maximum Drawdown, 0.0025 + +# *** SIMULATION PARAMETERS *** +# ***************************** +Maximum Temperature, 500 +Time steps per year, 12 diff --git a/tests/examples/example_SAM-single-owner-PPA-7e_chp-parallel.out b/tests/examples/example_SAM-single-owner-PPA-7e_chp-parallel.out new file mode 100644 index 000000000..de5fa9c1b --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-7e_chp-parallel.out @@ -0,0 +1,487 @@ + ***************** + ***CASE REPORT*** + ***************** + +Simulation Metadata +---------------------- + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-13 + Simulation Time: 08:24 + Calculation Time: 1.854 sec + + ***SUMMARY OF RESULTS*** + + End-Use Option: Cogeneration Parallel Cycle, Heat sales considered as extra income + Average Net Electricity Production: 9.78 MW + Average Direct-Use Heat Production: 229.02 MW + Electricity breakeven price: 16.93 cents/kWh + Direct-Use heat breakeven price (LCOH): 3.95 USD/MMBTU + Total CAPEX: 252.83 MUSD + Electricity CAPEX ($/kWe): 8946 USD/kW + Heat CAPEX ($/kWth): 717 USD/kW + Number of production wells: 6 + Number of injection wells: 4 + Flowrate per production well: 100.0 kg/sec + Well depth: 2.7 kilometer + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***ECONOMIC PARAMETERS*** + + Economic Model = SAM Single Owner PPA + Real Discount Rate: 12.00 % + Nominal Discount Rate: 15.02 % + WACC: 8.57 % + Investment Tax Credit: 75.85 MUSD + Project lifetime: 30 yr + Capacity factor: 90.0 % + Project NPV: 75.97 MUSD + After-tax IRR: 34.87 % + Project VIR=PI=PIR: 2.04 + Project MOIC: 7.63 + Project Payback Period: 3.90 yr + CHP: Percent cost allocation for electrical plant: 34.93 % + + ***ENGINEERING PARAMETERS*** + + Number of Production Wells: 6 + Number of Injection Wells: 4 + Well depth: 2.7 kilometer + Water loss rate: 1.0 % + Pump efficiency: 80.0 % + Injection temperature: 50.5 degC + Production Wellbore heat transmission calculated with Ramey's model + Average production well temperature drop: 0.3 degC + Flowrate per production well: 100.0 kg/sec + Injection well casing ID: 8.535 in + Production well casing ID: 8.535 in + Number of times redrilling: 3 + Power plant type: Subcritical ORC + + + ***RESOURCE CHARACTERISTICS*** + + Maximum reservoir temperature: 500.0 degC + Number of segments: 3 + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***RESERVOIR PARAMETERS*** + + Reservoir Model = Multiple Parallel Fractures Model (Gringarten) + Bottom-hole temperature: 205.38 degC + Fracture model = Rectangular + Well separation: fracture height: 100.00 meter + Fracture width: 305.00 meter + Fracture area: 30500.00 m**2 + Reservoir volume calculated with fracture separation and number of fractures as input + Number of fractures: 1500 + Fracture separation: 9.83 meter + Reservoir volume: 449216947 m**3 + Reservoir hydrostatic pressure: 25324.54 kPa + Plant outlet pressure: 13789.51 kPa + Production wellhead pressure: 2089.11 kPa + Productivity Index: 1.13 kg/sec/bar + Injectivity Index: 1.38 kg/sec/bar + Reservoir density: 2800.00 kg/m**3 + Reservoir thermal conductivity: 3.05 W/m/K + Reservoir heat capacity: 790.00 J/kg/K + + + ***RESERVOIR SIMULATION RESULTS*** + + Maximum Production Temperature: 203.1 degC + Average Production Temperature: 202.8 degC + Minimum Production Temperature: 201.3 degC + Initial Production Temperature: 201.6 degC + Average Reservoir Heat Extraction: 382.08 MW + Production Wellbore Heat Transmission Model = Ramey Model + Average Production Well Temperature Drop: 0.3 degC + Average Injection Well Pump Pressure Drop: -2003.9 kPa + Average Production Well Pump Pressure Drop: 9514.2 kPa + + + ***CAPITAL COSTS (M$)*** + + Exploration costs: 4.71 MUSD + Drilling and completion costs: 46.49 MUSD + Drilling and completion costs per well: 4.65 MUSD + Stimulation costs: 48.30 MUSD + Surface power plant costs: 126.16 MUSD + of which Electrical Plant Cost: 44.06 MUSD + of which Heat Plant Cost: 82.10 MUSD + Field gathering system costs: 3.20 MUSD + Total surface equipment costs: 129.36 MUSD + Overnight Capital Cost: 228.86 MUSD + Inflation costs during construction: 14.66 MUSD + Interest during construction: 9.31 MUSD + Total CAPEX: 252.83 MUSD + + + ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** + + Wellfield maintenance costs: 1.12 MUSD/yr + Power plant maintenance costs: 3.75 MUSD/yr + Water costs: 0.16 MUSD/yr + Redrilling costs: 9.48 MUSD/yr + Total operating and maintenance costs: 14.50 MUSD/yr + + + ***SURFACE EQUIPMENT SIMULATION RESULTS*** + Initial geofluid availability: 0.19 MW/(kg/s) + Maximum Total Electricity Generation: 18.01 MW + Average Total Electricity Generation: 17.92 MW + Minimum Total Electricity Generation: 17.52 MW + Initial Total Electricity Generation: 17.60 MW + Maximum Net Electricity Generation: 9.87 MW + Average Net Electricity Generation: 9.78 MW + Minimum Net Electricity Generation: 9.34 MW + Initial Net Electricity Generation: 9.45 MW + Average Annual Total Electricity Generation: 141.31 GWh + Average Annual Net Electricity Generation: 77.12 GWh + Initial pumping power/net installed power: 86.29 % + Maximum Net Heat Production: 229.47 MW + Average Net Heat Production: 229.02 MW + Minimum Net Heat Production: 226.77 MW + Initial Net Heat Production: 227.23 MW + Average Annual Heat Production: 1805.60 GWh + Average Pumping Power: 8.14 MW + Heat to Power Conversion Efficiency: 7.66 % + + ************************************************************ + * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ************************************************************ + YEAR THERMAL GEOFLUID PUMP NET NET FIRST LAW + DRAWDOWN TEMPERATURE POWER POWER HEAT EFFICIENCY + (deg C) (MW) (MW) (MW) (%) + 0 1.0000 201.64 8.1512 9.4463 227.2289 7.4605 + 1 1.0052 202.70 8.1476 9.7375 228.8127 7.6372 + 2 1.0062 202.89 8.1469 9.7919 229.1068 7.6701 + 3 1.0067 202.99 8.1466 9.8202 229.2598 7.6871 + 4 1.0070 203.06 8.1464 9.8390 229.3609 7.6984 + 5 1.0073 203.11 8.1462 9.8527 229.4348 7.7067 + 6 1.0074 203.13 8.1463 9.8590 229.4695 7.7104 + 7 1.0066 202.97 8.1489 9.8116 229.2250 7.6815 + 8 1.0007 201.78 8.1656 9.4684 227.4312 7.4713 + 9 1.0048 202.61 8.1453 9.7149 228.6766 7.6241 + 10 1.0060 202.86 8.1444 9.7847 229.0536 7.6662 + 11 1.0066 202.97 8.1428 9.8182 229.2280 7.6866 + 12 1.0070 203.05 8.1408 9.8405 229.3387 7.7004 + 13 1.0072 203.10 8.1387 9.8572 229.4184 7.7107 + 14 1.0074 203.13 8.1370 9.8682 229.4693 7.7176 + 15 1.0070 203.06 8.1373 9.8463 229.3515 7.7044 + 16 1.0031 202.27 8.1479 9.6203 228.1714 7.5666 + 17 1.0041 202.47 8.1345 9.6877 228.4684 7.6097 + 18 1.0058 202.82 8.1344 9.7831 228.9901 7.6671 + 19 1.0065 202.95 8.1343 9.8202 229.1926 7.6893 + 20 1.0069 203.03 8.1343 9.8426 229.3147 7.7028 + 21 1.0072 203.09 8.1343 9.8583 229.4006 7.7122 + 22 1.0074 203.13 8.1344 9.8694 229.4616 7.7188 + 23 1.0072 203.10 8.1353 9.8613 229.4219 7.7138 + 24 1.0048 202.61 8.1426 9.7180 228.6788 7.6265 + 25 1.0027 202.20 8.1344 9.6136 228.0599 7.5650 + 26 1.0056 202.76 8.1344 9.7689 228.9123 7.6585 + 27 1.0063 202.92 8.1344 9.8128 229.1526 7.6849 + 28 1.0068 203.01 8.1344 9.8377 229.2885 7.6998 + 29 1.0071 203.08 8.1344 9.8547 229.3815 7.7100 + + + ******************************************************************* + * ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ******************************************************************* + YEAR HEAT ELECTRICITY HEAT RESERVOIR PERCENTAGE OF + PROVIDED PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED + (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%) + 1 1799.9 76.0 3002.77 143.09 7.02 + 2 1805.3 77.0 3011.81 132.25 14.07 + 3 1806.9 77.3 3014.56 121.39 21.12 + 4 1807.9 77.5 3016.19 110.54 28.18 + 5 1808.6 77.6 3017.33 99.67 35.23 + 6 1809.1 77.7 3018.10 88.81 42.29 + 7 1808.6 77.6 3017.30 77.95 49.35 + 8 1802.0 76.4 3006.30 67.12 56.38 + 9 1796.6 75.4 2997.27 56.33 63.40 + 10 1804.6 76.9 3010.72 45.49 70.44 + 11 1806.6 77.3 3014.03 34.64 77.49 + 12 1807.7 77.5 3015.84 23.79 84.54 + 13 1808.4 77.7 3017.08 12.93 91.60 + 14 1809.0 77.8 3017.96 2.06 98.66 + 15 1808.9 77.8 3017.88 -8.80 105.72 + 16 1804.9 77.0 3011.14 -19.64 112.76 + 17 1795.1 75.2 2994.77 -30.42 119.77 + 18 1803.8 76.8 3009.26 -41.26 126.81 + 19 1806.2 77.3 3013.41 -52.11 133.86 + 20 1807.5 77.5 3015.46 -62.96 140.91 + 21 1808.3 77.7 3016.81 -73.82 147.97 + 22 1808.9 77.8 3017.78 -84.69 155.03 + 23 1809.1 77.8 3018.13 -95.55 162.09 + 24 1806.8 77.4 3014.27 -106.40 169.14 + 25 1795.4 75.2 2995.26 -117.19 176.14 + 26 1802.4 76.6 3007.08 -128.01 183.18 + 27 1805.8 77.2 3012.68 -138.86 190.23 + 28 1807.2 77.5 3015.04 -149.71 197.28 + 29 1808.1 77.6 3016.51 -160.57 204.33 + 30 1808.7 77.7 3017.53 -171.43 211.39 + + *************************** + * SAM CASH FLOW PROFILE * + *************************** +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + Year -2 Year -1 Year 0 Year 1 Year 2 Year 3 Year 4 Year 5 Year 6 Year 7 Year 8 Year 9 Year 10 Year 11 Year 12 Year 13 Year 14 Year 15 Year 16 Year 17 Year 18 Year 19 Year 20 Year 21 Year 22 Year 23 Year 24 Year 25 Year 26 Year 27 Year 28 Year 29 Year 30 +CONSTRUCTION +Capital expenditure schedule [construction] (%) 7.50 52.50 40.0 +Overnight capital expenditure [construction] ($) -17,164,342 -120,150,392 -91,543,156 +plus: +Inflation cost [construction] ($) -463,437 -6,575,711 -7,617,002 +plus: +Royalty supplemental payments [construction] ($) 0 0 0 +equals: +Nominal capital expenditure [construction] ($) -17,627,779 -126,726,102 -99,160,158 + +Issuance of equity [construction] ($) 17,627,779 38,017,831 29,748,047 +Issuance of debt [construction] ($) 0 88,708,272 69,412,111 +Debt balance [construction] ($) 0 88,708,272 167,434,751 +Debt interest payment [construction] ($) 0 0 9,314,369 + +Installed cost [construction] ($) -17,627,779 -126,726,102 -108,474,526 +After-tax net cash flow [construction] ($) -17,627,779 -38,017,831 -29,748,047 + +ENERGY +Electricity to grid (kWh) 0.0 76,022,895 77,022,420 77,328,014 77,508,915 77,635,368 77,721,005 77,625,113 76,358,606 75,411,265 76,920,949 77,293,497 77,507,333 77,659,375 77,771,654.0 77,770,039 76,998,319 75,192,414 76,844,058 77,299,019 77,524,423 77,671,903 77,778,315 77,814,608 77,365,558 75,228,107 76,606,475 77,219,138 77,477,201 77,638,802 77,750,321 +Electricity from grid (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +Electricity to grid net (kWh) 0.0 76,022,895 77,022,420 77,328,014 77,508,915 77,635,368 77,721,005 77,625,113 76,358,606 75,411,265 76,920,949 77,293,497 77,507,333 77,659,375 77,771,654.0 77,770,039 76,998,319 75,192,414 76,844,058 77,299,019 77,524,423 77,671,903 77,778,315 77,814,608 77,365,558 75,228,107 76,606,475 77,219,138 77,477,201 77,638,802 77,750,321 + +Heat provided (kWh) 0 1,799,859,865 1,805,279,595 1,806,929,868 1,807,905,631 1,808,587,267 1,809,050,768 1,808,567,767 1,801,976,788 1,796,561,584 1,804,624,087 1,806,607,962 1,807,697,073 1,808,436,021 1,808,965,217 1,808,916,212 1,804,878,668 1,795,065,145 1,803,751,981 1,806,237,654 1,807,467,916 1,808,272,945 1,808,854,387 1,809,065,717 1,806,751,065 1,795,360,557 1,802,446,417 1,805,803,163 1,807,214,015 1,808,096,770 1,808,705,814 + +REVENUE +PPA price (cents/kWh) 0.0 9.50 9.50 9.56 9.61 9.67 9.73 9.79 9.84 9.90 9.96 10.01 10.07 10.13 10.18 10.24 10.30 10.36 10.41 10.47 10.53 10.58 10.64 10.70 10.75 10.81 10.87 10.93 10.98 11.04 11.10 +PPA revenue ($) 0 7,222,175 7,317,130 7,390,238 7,451,707 7,508,116 7,560,699 7,595,617 7,515,214 7,464,961 7,658,250 7,739,398 7,804,988 7,864,565 7,920,265 7,964,430 7,929,287 7,786,175 8,001,003 8,092,434 8,160,221 8,220,017 8,275,613 8,323,829 8,319,892 8,132,911 8,325,592 8,436,191 8,508,546 8,570,547 8,627,176 +Curtailment payment revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Heat price ($/kWh) 0.0 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 +Heat revenue ($) 0 44,996,497 45,131,990 45,173,247 45,197,641 45,214,682 45,226,269 45,214,194 45,049,420 44,914,040 45,115,602 45,165,199 45,192,427 45,210,901 45,224,130 45,222,905 45,121,967 44,876,629 45,093,800 45,155,941 45,186,698 45,206,824 45,221,360 45,226,643 45,168,777 44,884,014 45,061,160 45,145,079 45,180,350 45,202,419 45,217,645 +equals: +Capacity payment revenue ($) 0 44,996,497 45,131,990 45,173,247 45,197,641 45,214,682 45,226,269 45,214,194 45,049,420 44,914,040 45,115,602 45,165,199 45,192,427 45,210,901 45,224,130 45,222,905 45,121,967 44,876,629 45,093,800 45,155,941 45,186,698 45,206,824 45,221,360 45,226,643 45,168,777 44,884,014 45,061,160 45,145,079 45,180,350 45,202,419 45,217,645 + +Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126,414,204 +Total revenue ($) 0 52,218,672 52,449,120 52,563,485 52,649,348 52,722,798 52,786,968 52,809,811 52,564,634 52,379,001 52,773,852 52,904,597 52,997,415 53,075,466 53,144,395 53,187,335 53,051,254 52,662,804 53,094,803 53,248,375 53,346,919 53,426,841 53,496,973 53,550,472 53,488,669 53,016,925 53,386,752 53,581,270 53,688,896 53,772,966 180,259,024 + +Property tax net assessed value ($) 0 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 252,828,408 + +OPERATING EXPENSES +O&M fixed expense ($) 0 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 14,501,871 +O&M production-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +O&M capacity-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Fuel expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Electricity purchase ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Property tax expense ($) 0 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 556,222 +Insurance expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total operating expenses ($) 0 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 15,058,093 + +EBITDA ($) 0 37,160,579 37,391,027 37,505,392 37,591,255 37,664,705 37,728,875 37,751,718 37,506,541 37,320,908 37,715,758 37,846,504 37,939,322 38,017,373 38,086,302 38,129,241 37,993,161 37,604,710 38,036,710 38,190,282 38,288,825 38,368,748 38,438,879 38,492,378 38,430,576 37,958,831 38,328,658 38,523,177 38,630,803 38,714,873 165,200,931 + +OPERATING ACTIVITIES +EBITDA ($) 0 37,160,579 37,391,027 37,505,392 37,591,255 37,664,705 37,728,875 37,751,718 37,506,541 37,320,908 37,715,758 37,846,504 37,939,322 38,017,373 38,086,302 38,129,241 37,993,161 37,604,710 38,036,710 38,190,282 38,288,825 38,368,748 38,438,879 38,492,378 38,430,576 37,958,831 38,328,658 38,523,177 38,630,803 38,714,873 165,200,931 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +plus PBI if not available for debt service: +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Debt interest payment ($) 0 11,720,433 11,596,355 11,463,593 11,321,537 11,169,537 11,006,897 10,832,872 10,646,666 10,447,425 10,234,237 10,006,126 9,762,047 9,500,883 9,221,437 8,922,431 8,602,493 8,260,160 7,893,864 7,501,927 7,082,554 6,633,825 6,153,686 5,639,936 5,090,224 4,502,032 3,872,667 3,199,246 2,478,686 1,707,687 882,717 +Cash flow from operating activities ($) 0 25,440,146 25,794,671 26,041,799 26,269,718 26,495,168 26,721,978 26,918,846 26,859,875 26,873,483 27,481,521 27,840,378 28,177,275 28,516,490 28,864,865 29,206,811 29,390,667 29,344,550 30,142,846 30,688,355 31,206,271 31,734,923 32,285,194 32,852,442 33,340,352 33,456,799 34,455,991 35,323,930 36,152,117 37,007,186 164,318,214 + +INVESTING ACTIVITIES +Total installed cost ($) -252,828,408 +Debt closing costs ($) 0 +Debt up-front fee ($) 0 +minus: +Total IBI income ($) 0 +Total CBI income ($) 0 +equals: +Purchase of property ($) -252,828,408 +plus: +Reserve (increase)/decrease debt service ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease working capital ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease receivables ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash flow from investing activities ($) -252,828,408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +FINANCING ACTIVITIES +Issuance of equity ($) 85,393,657 +Size of debt ($) 167,434,751 +minus: +Debt principal payment ($) 0 1,772,532 1,896,609 2,029,372 2,171,428 2,323,428 2,486,068 2,660,092 2,846,299 3,045,540 3,258,727 3,486,838 3,730,917 3,992,081 4,271,527 4,570,534 4,890,471 5,232,804 5,599,101 5,991,038 6,410,410 6,859,139 7,339,279 7,853,028 8,402,740 8,990,932 9,620,297 10,293,718 11,014,278 11,785,278 12,610,247 +equals: +Cash flow from financing activities ($) 252,828,408 -1,772,532 -1,896,609 -2,029,372 -2,171,428 -2,323,428 -2,486,068 -2,660,092 -2,846,299 -3,045,540 -3,258,727 -3,486,838 -3,730,917 -3,992,081 -4,271,527 -4,570,534 -4,890,471 -5,232,804 -5,599,101 -5,991,038 -6,410,410 -6,859,139 -7,339,279 -7,853,028 -8,402,740 -8,990,932 -9,620,297 -10,293,718 -11,014,278 -11,785,278 -12,610,247 + +PROJECT RETURNS +Pre-tax Cash Flow: +Cash flow from operating activities ($) 0 25,440,146 25,794,671 26,041,799 26,269,718 26,495,168 26,721,978 26,918,846 26,859,875 26,873,483 27,481,521 27,840,378 28,177,275 28,516,490 28,864,865 29,206,811 29,390,667 29,344,550 30,142,846 30,688,355 31,206,271 31,734,923 32,285,194 32,852,442 33,340,352 33,456,799 34,455,991 35,323,930 36,152,117 37,007,186 164,318,214 +Cash flow from investing activities ($) -252,828,408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Cash flow from financing activities ($) 252,828,408 -1,772,532 -1,896,609 -2,029,372 -2,171,428 -2,323,428 -2,486,068 -2,660,092 -2,846,299 -3,045,540 -3,258,727 -3,486,838 -3,730,917 -3,992,081 -4,271,527 -4,570,534 -4,890,471 -5,232,804 -5,599,101 -5,991,038 -6,410,410 -6,859,139 -7,339,279 -7,853,028 -8,402,740 -8,990,932 -9,620,297 -10,293,718 -11,014,278 -11,785,278 -12,610,247 +Total pre-tax cash flow ($) 0 23,667,614 23,898,062 24,012,428 24,098,290 24,171,741 24,235,911 24,258,754 24,013,576 23,827,943 24,222,794 24,353,539 24,446,358 24,524,408 24,593,338 24,636,277 24,500,196 24,111,746 24,543,746 24,697,318 24,795,861 24,875,784 24,945,915 24,999,414 24,937,611 24,465,867 24,835,694 25,030,212 25,137,838 25,221,909 151,707,967 + +Pre-tax Returns: +Issuance of equity ($) 85,393,657 +Total pre-tax cash flow ($) 0 23,667,614 23,898,062 24,012,428 24,098,290 24,171,741 24,235,911 24,258,754 24,013,576 23,827,943 24,222,794 24,353,539 24,446,358 24,524,408 24,593,338 24,636,277 24,500,196 24,111,746 24,543,746 24,697,318 24,795,861 24,875,784 24,945,915 24,999,414 24,937,611 24,465,867 24,835,694 25,030,212 25,137,838 25,221,909 151,707,967 +Total pre-tax returns ($) -85,393,657 23,667,614 23,898,062 24,012,428 24,098,290 24,171,741 24,235,911 24,258,754 24,013,576 23,827,943 24,222,794 24,353,539 24,446,358 24,524,408 24,593,338 24,636,277 24,500,196 24,111,746 24,543,746 24,697,318 24,795,861 24,875,784 24,945,915 24,999,414 24,937,611 24,465,867 24,835,694 25,030,212 25,137,838 25,221,909 151,707,967 + +After-tax Returns: +Total pre-tax returns ($) -85,393,657 23,667,614 23,898,062 24,012,428 24,098,290 24,171,741 24,235,911 24,258,754 24,013,576 23,827,943 24,222,794 24,353,539 24,446,358 24,524,408 24,593,338 24,636,277 24,500,196 24,111,746 24,543,746 24,697,318 24,795,861 24,875,784 24,945,915 24,999,414 24,937,611 24,465,867 24,835,694 25,030,212 25,137,838 25,221,909 151,707,967 +Federal ITC total income ($) 0 75,848,522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal tax benefit (liability) ($) 0 -4,022,439 -3,016,590 -3,066,125 -3,111,811 -3,157,001 -3,202,464 -3,241,925 -3,230,105 -3,232,832 -3,354,710 -3,426,641 -3,494,171 -3,562,165 -3,631,995 -3,700,536 -3,737,389 -3,728,145 -3,888,160 -3,997,504 -4,101,318 -5,284,195 -6,471,406 -6,585,108 -6,682,907 -6,706,248 -6,906,531 -7,080,505 -7,246,511 -7,417,905 -32,936,764 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -913,073 -684,751 -695,995 -706,365 -716,623 -726,943 -735,901 -733,217 -733,837 -761,502 -777,830 -793,159 -808,593 -824,444 -840,003 -848,368 -846,270 -882,593 -907,413 -930,978 -1,199,486 -1,468,976 -1,494,786 -1,516,986 -1,522,284 -1,567,748 -1,607,239 -1,644,921 -1,683,827 -7,476,479 +Total after-tax returns ($) -85,393,657 94,580,625 20,196,722 20,250,307 20,280,115 20,298,117 20,306,504 20,280,928 20,050,254 19,861,275 20,106,581 20,149,068 20,159,028 20,153,650 20,136,898 20,095,738 19,914,438 19,537,330 19,772,993 19,792,400 19,763,565 18,392,103 17,005,533 16,919,520 16,737,719 16,237,335 16,361,415 16,342,468 16,246,406 16,120,176 111,294,724 + +After-tax net cash flow ($) -17,627,779 -38,017,831 -29,748,047 94,580,625 20,196,722 20,250,307 20,280,115 20,298,117 20,306,504 20,280,928 20,050,254 19,861,275 20,106,581 20,149,068 20,159,028 20,153,650 20,136,898 20,095,738 19,914,438 19,537,330 19,772,993 19,792,400 19,763,565 18,392,103 17,005,533 16,919,520 16,737,719 16,237,335 16,361,415 16,342,468 16,246,406 16,120,176 111,294,724 +After-tax cumulative IRR (%) NaN NaN NaN 5.61 15.42 21.94 26.15 28.90 30.72 31.96 32.80 33.38 33.79 34.09 34.30 34.46 34.57 34.65 34.71 34.76 34.79 34.81 34.83 34.84 34.85 34.85 34.86 34.86 34.86 34.87 34.87 34.87 34.87 +After-tax cumulative NPV ($) -17,627,779 -50,679,865 -73,164,276 -11,014,899 523,008 10,580,490 19,337,173 26,956,848 33,584,008 39,338,297 44,284,081 48,543,340 52,292,005 55,557,920 58,398,657 60,867,689 63,012,441 64,873,243 66,476,398 67,843,763 69,046,867 70,093,852 71,002,758 71,738,113 72,329,221 72,840,522 73,280,262 73,651,136 73,976,031 74,258,163 74,502,002 74,712,345 75,974,881 + +AFTER-TAX LCOE AND PPA PRICE +Annual costs ($) -17,627,779 -38,017,831 -29,748,047 42,361,953 -32,252,398 -32,313,178 -32,369,233 -32,424,682 -32,480,465 -32,528,883 -32,514,380 -32,517,726 -32,667,270 -32,755,529 -32,838,388 -32,921,816 -33,007,497 -33,091,597 -33,136,815 -33,125,473 -33,321,810 -33,455,975 -33,583,354 -35,034,738 -36,491,440 -36,630,952 -36,750,950 -36,779,590 -37,025,336 -37,238,802 -37,442,490 -37,652,790 57,449,903 +PPA revenue ($) 0 0 0 7,222,175 7,317,130 7,390,238 7,451,707 7,508,116 7,560,699 7,595,617 7,515,214 7,464,961 7,658,250 7,739,398 7,804,988 7,864,565 7,920,265 7,964,430 7,929,287 7,786,175 8,001,003 8,092,434 8,160,221 8,220,017 8,275,613 8,323,829 8,319,892 8,132,911 8,325,592 8,436,191 8,508,546 8,570,547 8,627,176 +Electricity to grid (kWh) 0 0 0 76,022,895 77,022,420 77,328,014 77,508,915 77,635,368 77,721,005 77,625,113 76,358,606 75,411,265 76,920,949 77,293,497 77,507,333 77,659,375 77,771,654 77,770,039 76,998,319 75,192,414 76,844,058 77,299,019 77,524,423 77,671,903 77,778,315 77,814,608 77,365,558 75,228,107 76,606,475 77,219,138 77,477,201 77,638,802 77,750,321 + +Present value of annual costs ($) 185,102,812 + +Present value of annual energy costs ($) 64,648,201 +Present value of annual energy nominal (kWh) 381,773,711 +LCOE Levelized cost of energy nominal (cents/kWh) 16.93 + +Present value of PPA revenue ($) 37,430,146 +Present value of annual energy nominal (kWh) 381,773,711 +LPPA Levelized PPA price nominal (cents/kWh) 9.80 + +Present value of annual heat costs ($) 120,454,611 +Present value of annual heat provided (MMBTU) 30,524,679 +LCOH Levelized cost of heating nominal ($/MMBTU) 3.95 + +PROJECT STATE INCOME TAXES +EBITDA ($) 0 37,160,579 37,391,027 37,505,392 37,591,255 37,664,705 37,728,875 37,751,718 37,506,541 37,320,908 37,715,758 37,846,504 37,939,322 38,017,373 38,086,302 38,129,241 37,993,161 37,604,710 38,036,710 38,190,282 38,288,825 38,368,748 38,438,879 38,492,378 38,430,576 37,958,831 38,328,658 38,523,177 38,630,803 38,714,873 165,200,931 +State taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State taxable IBI income ($) 0 +State taxable CBI income ($) 0 +minus: +Debt interest payment ($) 0 11,720,433 11,596,355 11,463,593 11,321,537 11,169,537 11,006,897 10,832,872 10,646,666 10,447,425 10,234,237 10,006,126 9,762,047 9,500,883 9,221,437 8,922,431 8,602,493 8,260,160 7,893,864 7,501,927 7,082,554 6,633,825 6,153,686 5,639,936 5,090,224 4,502,032 3,872,667 3,199,246 2,478,686 1,707,687 882,717 +Total state tax depreciation ($) 0 5,372,604 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 5,372,604 0 0 0 0 0 0 0 0 0 +equals: +State taxable income ($) 0 20,067,543 15,049,464 15,296,592 15,524,511 15,749,961 15,976,771 16,173,639 16,114,668 16,128,276 16,736,314 17,095,170 17,432,067 17,771,282 18,119,657 18,461,604 18,645,460 18,599,343 19,397,639 19,943,148 20,461,064 26,362,319 32,285,194 32,852,442 33,340,352 33,456,799 34,455,991 35,323,930 36,152,117 37,007,186 164,318,214 + +State income tax rate (frac) 0.0 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 +State tax benefit (liability) ($) 0 -913,073 -684,751 -695,995 -706,365 -716,623 -726,943 -735,901 -733,217 -733,837 -761,502 -777,830 -793,159 -808,593 -824,444 -840,003 -848,368 -846,270 -882,593 -907,413 -930,978 -1,199,486 -1,468,976 -1,494,786 -1,516,986 -1,522,284 -1,567,748 -1,607,239 -1,644,921 -1,683,827 -7,476,479 + +PROJECT FEDERAL INCOME TAXES +EBITDA ($) 0 37,160,579 37,391,027 37,505,392 37,591,255 37,664,705 37,728,875 37,751,718 37,506,541 37,320,908 37,715,758 37,846,504 37,939,322 38,017,373 38,086,302 38,129,241 37,993,161 37,604,710 38,036,710 38,190,282 38,288,825 38,368,748 38,438,879 38,492,378 38,430,576 37,958,831 38,328,658 38,523,177 38,630,803 38,714,873 165,200,931 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -913,073 -684,751 -695,995 -706,365 -716,623 -726,943 -735,901 -733,217 -733,837 -761,502 -777,830 -793,159 -808,593 -824,444 -840,003 -848,368 -846,270 -882,593 -907,413 -930,978 -1,199,486 -1,468,976 -1,494,786 -1,516,986 -1,522,284 -1,567,748 -1,607,239 -1,644,921 -1,683,827 -7,476,479 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal taxable IBI income ($) 0 +Federal taxable CBI income ($) 0 +Federal taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +minus: +Debt interest payment ($) 0 11,720,433 11,596,355 11,463,593 11,321,537 11,169,537 11,006,897 10,832,872 10,646,666 10,447,425 10,234,237 10,006,126 9,762,047 9,500,883 9,221,437 8,922,431 8,602,493 8,260,160 7,893,864 7,501,927 7,082,554 6,633,825 6,153,686 5,639,936 5,090,224 4,502,032 3,872,667 3,199,246 2,478,686 1,707,687 882,717 +Total federal tax depreciation ($) 0 5,372,604 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 10,745,207 5,372,604 0 0 0 0 0 0 0 0 0 +equals: +Federal taxable income ($) 0 19,154,469 14,364,713 14,600,597 14,818,146 15,033,338 15,249,828 15,437,738 15,381,450 15,394,439 15,974,812 16,317,340 16,638,908 16,962,689 17,295,213 17,621,601 17,797,092 17,753,073 18,515,046 19,035,735 19,530,086 25,162,834 30,816,217 31,357,656 31,823,366 31,934,514 32,888,244 33,716,691 34,507,195 35,323,359 156,841,735 + +Federal income tax rate (frac) 0.0 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 +Federal tax benefit (liability) ($) 0 -4,022,439 -3,016,590 -3,066,125 -3,111,811 -3,157,001 -3,202,464 -3,241,925 -3,230,105 -3,232,832 -3,354,710 -3,426,641 -3,494,171 -3,562,165 -3,631,995 -3,700,536 -3,737,389 -3,728,145 -3,888,160 -3,997,504 -4,101,318 -5,284,195 -6,471,406 -6,585,108 -6,682,907 -6,706,248 -6,906,531 -7,080,505 -7,246,511 -7,417,905 -32,936,764 + +CASH INCENTIVES +Federal IBI income ($) 0 +State IBI income ($) 0 +Utility IBI income ($) 0 +Other IBI income ($) 0 +Total IBI income ($) 0 + +Federal CBI income ($) 0 +State CBI income ($) 0 +Utility CBI income ($) 0 +Other CBI income ($) 0 +Total CBI income ($) 0 + +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +TAX CREDITS +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Federal ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC percent income ($) 0 75,848,522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC total income ($) 0 75,848,522 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +State ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC percent income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +DEBT REPAYMENT +Debt balance ($) 167,434,751 165,662,219 163,765,610 161,736,238 159,564,810 157,241,383 154,755,315 152,095,223 149,248,924 146,203,384 142,944,657 139,457,818 135,726,901 131,734,820 127,463,293 122,892,759 118,002,288 112,769,484 107,170,383 101,179,346 94,768,936 87,909,797 80,570,518 72,717,490 64,314,750 55,323,818 45,703,521 35,409,803 24,395,525 12,610,247 0 +Debt interest payment ($) 0 11,720,433 11,596,355 11,463,593 11,321,537 11,169,537 11,006,897 10,832,872 10,646,666 10,447,425 10,234,237 10,006,126 9,762,047 9,500,883 9,221,437 8,922,431 8,602,493 8,260,160 7,893,864 7,501,927 7,082,554 6,633,825 6,153,686 5,639,936 5,090,224 4,502,032 3,872,667 3,199,246 2,478,686 1,707,687 882,717 +Debt principal payment ($) 0 1,772,532 1,896,609 2,029,372 2,171,428 2,323,428 2,486,068 2,660,092 2,846,299 3,045,540 3,258,727 3,486,838 3,730,917 3,992,081 4,271,527 4,570,534 4,890,471 5,232,804 5,599,101 5,991,038 6,410,410 6,859,139 7,339,279 7,853,028 8,402,740 8,990,932 9,620,297 10,293,718 11,014,278 11,785,278 12,610,247 +Debt total payment ($) 0 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 + +DSCR (DEBT FRACTION) +EBITDA ($) 0 37,160,579 37,391,027 37,505,392 37,591,255 37,664,705 37,728,875 37,751,718 37,506,541 37,320,908 37,715,758 37,846,504 37,939,322 38,017,373 38,086,302 38,129,241 37,993,161 37,604,710 38,036,710 38,190,282 38,288,825 38,368,748 38,438,879 38,492,378 38,430,576 37,958,831 38,328,658 38,523,177 38,630,803 38,714,873 165,200,931 +minus: +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash available for debt service (CAFDS) ($) 0 37,160,579 37,391,027 37,505,392 37,591,255 37,664,705 37,728,875 37,751,718 37,506,541 37,320,908 37,715,758 37,846,504 37,939,322 38,017,373 38,086,302 38,129,241 37,993,161 37,604,710 38,036,710 38,190,282 38,288,825 38,368,748 38,438,879 38,492,378 38,430,576 37,958,831 38,328,658 38,523,177 38,630,803 38,714,873 165,200,931 +Debt total payment ($) 0 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 13,492,964 +DSCR (pre-tax) 0.0 2.75 2.77 2.78 2.79 2.79 2.80 2.80 2.78 2.77 2.80 2.80 2.81 2.82 2.82 2.83 2.82 2.79 2.82 2.83 2.84 2.84 2.85 2.85 2.85 2.81 2.84 2.86 2.86 2.87 12.24 + +RESERVES +Reserves working capital funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves debt service funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves total reserves balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest on reserves (%/year) 1.75 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/tests/examples/example_SAM-single-owner-PPA-7e_chp-parallel.txt b/tests/examples/example_SAM-single-owner-PPA-7e_chp-parallel.txt new file mode 100644 index 000000000..501211723 --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-7e_chp-parallel.txt @@ -0,0 +1,110 @@ +# Example: SAM Single Owner PPA Economic Model: Combined Heat and Power (CHP): Cogeneration Parallel Cycle +# See documentation: https://softwareengineerprogrammer.github.io/GEOPHIRES/SAM-EM_End-Uses-and-Surface-Applications.html + +# *** ECONOMIC/FINANCIAL PARAMETERS *** +# ************************************* +Economic Model, 5, -- SAM Single Owner PPA + +Inflation Rate, .027, -- US inflation as of December 2025 + +Starting Electricity Sale Price, 0.095 +Electricity Escalation Rate Per Year, 0.00057 +Ending Electricity Sale Price, 1, -- Note that this value does not directly determine price at the end of the project life, but rather as a cap as the maximum price to which the starting price can escalate. +Electricity Escalation Start Year, 1 + +Fraction of Investment in Bonds, .7 +Discount Rate, 0.12 +Inflated Bond Interest Rate, .07 + +Inflated Bond Interest Rate During Construction, 0.105 +Bond Financing Start Year, -1 + +Construction Years, 3 + +Construction CAPEX Schedule, 0.075,0.525,0.4, -- DOE-ATB hybrid scenario + +Investment Tax Credit Rate, 0.3 +Combined Income Tax Rate, .2555 +Property Tax Rate, 0.0022 + +Capital Cost for Power Plant for Electricity Generation, 1900 + +Well Drilling Cost Correlation, 3 +Well Drilling and Completion Capital Cost Adjustment Factor, 0.9, -- 2024b Geothermal ATB + +Reservoir Stimulation Capital Cost per Injection Well, 4 +Reservoir Stimulation Capital Cost per Production Well, 4 + +Field Gathering System Capital Cost Adjustment Factor, 0.35 + +# *** SURFACE & SUBSURFACE TECHNICAL PARAMETERS *** +# ************************************************* + +End-Use Option, 51, -- CHP Parallel Cycle with electricity as the main product +CHP Fraction, 0.666, -- 2/3 of geofluid flow rate going to do direct-use heat application in CHP parallel cycle +Power Plant Type, 1, -- Subcritical ORC + +Plant Lifetime, 30 + +Surface Temperature, 13 + +Number of Segments, 3 +Gradient 1, 74 +Thickness 1, 2.5 +Gradient 2, 41 +Thickness 2, 0.5 +Gradient 3, 39.1 + +Reservoir Depth, 2.68 + +Reservoir Density, 2800 +Reservoir Heat Capacity, 790 +Reservoir Thermal Conductivity, 3.05 +Reservoir Porosity, 0.0118 + +Reservoir Model, 1, -- Multiple Parallel Fractures (Gringarten) +Reservoir Volume Option, 1, -- FRAC_NUM_SEP: Reservoir volume calculated with fracture separation and number of fractures as input + +Number of Fractures per Stimulated Well, 150 +Fracture Separation, 9.8255 + +Fracture Shape, 4, -- Rectangular +Fracture Width, 305 +Fracture Height, 100 + +Water Loss Fraction, 0.01 + +Ambient Temperature, 11.1728 + +Utilization Factor, .9 +Plant Outlet Pressure, 2000 psi +Circulation Pump Efficiency, 0.80 + +# *** Well Bores Parameters *** + +Number of Production Wells, 6 +Number of Injection Wells per Production Well, 0.666, -- 5-well bench pattern (3 producers : 2 injectors) + +Nonvertical Length per Multilateral Section, 5000 feet +Number of Multilateral Sections, 0, -- This parameter is set to 0 because the cost of horizontal drilling is included within the 'vertical drilling cost.' This approach allows us to more directly convey the overall well drilling and completion cost. + +Production Flow Rate per Well, 100 + +Production Well Diameter, 8.535, -- Inner diameter of 9⅝ inch casing size +Injection Well Diameter, 8.535, -- See Production Well Diameter + +Production Wellhead Pressure, 303 psi + +Injectivity Index, 1.38 +Productivity Index, 1.13 + +Ramey Production Wellbore Model, True, -- Ramey's model estimates the geofluid temperature drop in production wells +Injection Temperature, 47.5 +Injection Wellbore Temperature Gain, 3 + +Maximum Drawdown, 0.0025 + +# *** SIMULATION PARAMETERS *** +# ***************************** +Maximum Temperature, 500 +Time steps per year, 12 diff --git a/tests/examples/example_SAM-single-owner-PPA-8_heat.out b/tests/examples/example_SAM-single-owner-PPA-8_heat.out new file mode 100644 index 000000000..21bba80e4 --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-8_heat.out @@ -0,0 +1,465 @@ + ***************** + ***CASE REPORT*** + ***************** + +Simulation Metadata +---------------------- + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-08 + Simulation Time: 08:15 + Calculation Time: 1.785 sec + + ***SUMMARY OF RESULTS*** + + End-Use Option: Direct-Use Heat + Average Direct-Use Heat Production: 330.46 MW + Direct-Use heat breakeven price (LCOH): 4.60 USD/MMBTU + Total CAPEX: 244.33 MUSD + Number of production wells: 6 + Number of injection wells: 4 + Flowrate per production well: 100.0 kg/sec + Well depth: 2.7 kilometer + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***ECONOMIC PARAMETERS*** + + Economic Model = SAM Single Owner PPA + Real Discount Rate: 12.00 % + Nominal Discount Rate: 15.02 % + WACC: 8.57 % + Investment Tax Credit: 73.30 MUSD + Project lifetime: 30 yr + Capacity factor: 90.0 % + Project NPV: 72.65 MUSD + After-tax IRR: 25.90 % + Project VIR=PI=PIR: 2.03 + Project MOIC: 14.11 + Project Payback Period: 8.94 yr + + ***ENGINEERING PARAMETERS*** + + Number of Production Wells: 6 + Number of Injection Wells: 4 + Well depth: 2.7 kilometer + Water loss rate: 1.0 % + Pump efficiency: 80.0 % + Injection temperature: 56.6 degC + Production Wellbore heat transmission calculated with Ramey's model + Average production well temperature drop: 0.3 degC + Flowrate per production well: 100.0 kg/sec + Injection well casing ID: 8.535 in + Production well casing ID: 8.535 in + Number of times redrilling: 3 + + + ***RESOURCE CHARACTERISTICS*** + + Maximum reservoir temperature: 500.0 degC + Number of segments: 3 + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***RESERVOIR PARAMETERS*** + + Reservoir Model = Multiple Parallel Fractures Model (Gringarten) + Bottom-hole temperature: 205.38 degC + Fracture model = Rectangular + Well separation: fracture height: 100.00 meter + Fracture width: 305.00 meter + Fracture area: 30500.00 m**2 + Reservoir volume calculated with fracture separation and number of fractures as input + Number of fractures: 1500 + Fracture separation: 9.83 meter + Reservoir volume: 449216947 m**3 + Reservoir hydrostatic pressure: 25324.54 kPa + Plant outlet pressure: 13789.51 kPa + Production wellhead pressure: 2089.11 kPa + Productivity Index: 1.13 kg/sec/bar + Injectivity Index: 1.38 kg/sec/bar + Reservoir density: 2800.00 kg/m**3 + Reservoir thermal conductivity: 3.05 W/m/K + Reservoir heat capacity: 790.00 J/kg/K + + + ***RESERVOIR SIMULATION RESULTS*** + + Maximum Production Temperature: 203.1 degC + Average Production Temperature: 202.8 degC + Minimum Production Temperature: 201.4 degC + Initial Production Temperature: 201.6 degC + Average Reservoir Heat Extraction: 367.18 MW + Production Wellbore Heat Transmission Model = Ramey Model + Average Production Well Temperature Drop: 0.3 degC + Average Injection Well Pump Pressure Drop: -1925.9 kPa + Average Production Well Pump Pressure Drop: 9514.6 kPa + + + ***CAPITAL COSTS (M$)*** + + Exploration costs: 4.71 MUSD + Drilling and completion costs: 46.49 MUSD + Drilling and completion costs per well: 4.65 MUSD + Stimulation costs: 48.30 MUSD + Surface power plant costs: 118.47 MUSD + Field gathering system costs: 3.20 MUSD + Total surface equipment costs: 121.67 MUSD + Overnight Capital Cost: 221.17 MUSD + Inflation costs during construction: 14.16 MUSD + Interest during construction: 9.00 MUSD + Total CAPEX: 244.33 MUSD + + + ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** + + Wellfield maintenance costs: 1.11 MUSD/yr + Power plant maintenance costs: 3.62 MUSD/yr + Water costs: 0.16 MUSD/yr + Average Reservoir Pumping Cost: 4.49 MUSD/yr + Redrilling costs: 9.48 MUSD/yr + Total operating and maintenance costs: 18.85 MUSD/yr + + + ***SURFACE EQUIPMENT SIMULATION RESULTS*** + Maximum Net Heat Production: 331.14 MW + Average Net Heat Production: 330.46 MW + Minimum Net Heat Production: 327.18 MW + Initial Net Heat Production: 327.77 MW + Average Annual Heat Production: 2605.38 GWh + Average Pumping Power: 8.14 MW + + ************************************************************ + * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ************************************************************ + YEAR THERMAL GEOFLUID PUMP NET + DRAWDOWN TEMPERATURE POWER HEAT + (deg C) (MW) (MW) + 0 1.0000 201.65 8.1512 327.7689 + 1 1.0052 202.70 8.1476 330.1471 + 2 1.0062 202.90 8.1469 330.5887 + 3 1.0067 203.00 8.1466 330.8183 + 4 1.0070 203.06 8.1463 330.9702 + 5 1.0073 203.11 8.1462 331.0811 + 6 1.0074 203.14 8.1463 331.1337 + 7 1.0066 202.98 8.1488 330.7744 + 8 1.0008 201.81 8.1651 328.1420 + 9 1.0048 202.61 8.1453 329.9427 + 10 1.0060 202.86 8.1444 330.5087 + 11 1.0066 202.98 8.1429 330.7707 + 12 1.0070 203.05 8.1409 330.9369 + 13 1.0072 203.10 8.1389 331.0565 + 14 1.0074 203.14 8.1373 331.1331 + 15 1.0070 203.06 8.1377 330.9604 + 16 1.0032 202.29 8.1481 329.2273 + 17 1.0041 202.47 8.1350 329.6301 + 18 1.0058 202.82 8.1348 330.4135 + 19 1.0065 202.95 8.1348 330.7174 + 20 1.0069 203.03 8.1348 330.9008 + 21 1.0072 203.09 8.1348 331.0298 + 22 1.0074 203.13 8.1348 331.1214 + 23 1.0072 203.11 8.1357 331.0640 + 24 1.0048 202.62 8.1429 329.9719 + 25 1.0027 202.20 8.1348 329.0166 + 26 1.0055 202.77 8.1348 330.2966 + 27 1.0063 202.93 8.1348 330.6574 + 28 1.0068 203.02 8.1349 330.8615 + 29 1.0071 203.08 8.1349 331.0011 + + + ******************************************************************* + * ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ******************************************************************* + YEAR HEAT HEAT RESERVOIR PERCENTAGE OF + PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED + (GWh/year) (GWh/year) (10^15 J) (%) + 1 2596.7 2885.2 137.45 7.03 + 2 2604.9 2894.3 127.03 14.07 + 3 2607.3 2897.0 116.60 21.13 + 4 2608.8 2898.7 106.17 28.19 + 5 2609.8 2899.8 95.73 35.25 + 6 2610.5 2900.6 85.29 42.31 + 7 2609.8 2899.8 74.85 49.37 + 8 2600.1 2889.0 64.45 56.41 + 9 2591.9 2879.9 54.08 63.42 + 10 2603.9 2893.2 43.66 70.47 + 11 2606.9 2896.5 33.24 77.52 + 12 2608.5 2898.3 22.80 84.58 + 13 2609.6 2899.6 12.36 91.64 + 14 2610.4 2900.4 1.92 98.70 + 15 2610.3 2900.4 -8.52 105.76 + 16 2604.4 2893.8 -18.94 112.81 + 17 2589.8 2877.5 -29.30 119.82 + 18 2602.6 2891.7 -39.71 126.86 + 19 2606.3 2895.9 -50.13 133.91 + 20 2608.1 2897.9 -60.56 140.97 + 21 2609.4 2899.3 -71.00 148.03 + 22 2610.2 2900.3 -81.44 155.09 + 23 2610.6 2900.6 -91.89 162.15 + 24 2607.2 2896.8 -102.31 169.21 + 25 2590.3 2878.1 -112.68 176.22 + 26 2600.6 2889.6 -123.08 183.25 + 27 2605.6 2895.2 -133.50 190.30 + 28 2607.8 2897.5 -143.93 197.36 + 29 2609.1 2899.0 -154.37 204.42 + 30 2610.0 2900.0 -164.81 211.48 + + *************************** + * SAM CASH FLOW PROFILE * + *************************** +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + Year -2 Year -1 Year 0 Year 1 Year 2 Year 3 Year 4 Year 5 Year 6 Year 7 Year 8 Year 9 Year 10 Year 11 Year 12 Year 13 Year 14 Year 15 Year 16 Year 17 Year 18 Year 19 Year 20 Year 21 Year 22 Year 23 Year 24 Year 25 Year 26 Year 27 Year 28 Year 29 Year 30 +CONSTRUCTION +Capital expenditure schedule [construction] (%) 7.50 52.50 40.0 +Overnight capital expenditure [construction] ($) -16,587,617 -116,113,319 -88,467,291 +plus: +Inflation cost [construction] ($) -447,866 -6,354,766 -7,361,070 +plus: +Royalty supplemental payments [construction] ($) 0 0 0 +equals: +Nominal capital expenditure [construction] ($) -17,035,483 -122,468,085 -95,828,361 + +Issuance of equity [construction] ($) 17,035,483 36,740,426 28,748,508 +Issuance of debt [construction] ($) 0 85,727,660 67,079,852 +Debt balance [construction] ($) 0 85,727,660 161,808,916 +Debt interest payment [construction] ($) 0 0 9,001,404 + +Installed cost [construction] ($) -17,035,483 -122,468,085 -104,829,765 +After-tax net cash flow [construction] ($) -17,035,483 -36,740,426 -28,748,508 + +ENERGY +Electricity to grid (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +Electricity to grid net (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + +Heat provided (kWh) 0 2,596,723,692 2,604,861,601 2,607,339,534 2,608,804,668 2,609,828,178 2,610,525,059 2,609,821,916 2,600,140,574 2,591,908,499 2,603,877,334 2,606,856,182 2,608,491,513 2,609,601,068 2,610,396,012 2,610,333,538 2,604,400,594 2,589,770,971 2,602,567,841 2,606,300,154 2,608,147,427 2,609,356,200 2,610,229,374 2,610,551,931 2,607,151,425 2,590,281,491 2,600,607,493 2,605,647,753 2,607,766,188 2,609,091,668 2,610,006,197 + +REVENUE +PPA price (cents/kWh) 0.0 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 +PPA revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Curtailment payment revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Heat price ($/kWh) 0.0 0.01 0.01 0.01 0.01 0.01 0.01 0.02 0.03 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 +Heat revenue ($) 0 31,939,701 32,039,798 32,070,276 32,088,297 32,100,887 32,109,458 58,199,029 83,984,541 93,049,515 93,479,196 93,586,137 93,644,845 93,684,678 93,713,217 93,710,974 93,497,981 92,972,778 93,432,185 93,566,176 93,632,493 93,675,888 93,707,235 93,718,814 93,596,736 92,991,106 93,361,809 93,542,754 93,618,806 93,666,391 93,699,222 +equals: +Capacity payment revenue ($) 0 31,939,701 32,039,798 32,070,276 32,088,297 32,100,887 32,109,458 58,199,029 83,984,541 93,049,515 93,479,196 93,586,137 93,644,845 93,684,678 93,713,217 93,710,974 93,497,981 92,972,778 93,432,185 93,566,176 93,632,493 93,675,888 93,707,235 93,718,814 93,596,736 92,991,106 93,361,809 93,542,754 93,618,806 93,666,391 93,699,222 + +Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122,166,666 +Total revenue ($) 0 31,939,701 32,039,798 32,070,276 32,088,297 32,100,887 32,109,458 58,199,029 83,984,541 93,049,515 93,479,196 93,586,137 93,644,845 93,684,678 93,713,217 93,710,974 93,497,981 92,972,778 93,432,185 93,566,176 93,632,493 93,675,888 93,707,235 93,718,814 93,596,736 92,991,106 93,361,809 93,542,754 93,618,806 93,666,391 215,865,888 + +Property tax net assessed value ($) 0 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 244,333,333 + +OPERATING EXPENSES +O&M fixed expense ($) 0 18,857,935 18,857,078 18,856,816 18,856,662 18,856,555 18,856,509 18,857,013 18,861,324 18,858,798 18,855,811 18,855,144 18,854,170 18,853,050 18,852,027 18,851,542 18,853,830 18,855,256 18,850,277 18,850,225 18,850,210 18,850,210 18,850,221 18,850,390 18,852,118 18,856,498 18,850,242 18,850,249 18,850,255 18,850,261 18,850,268 +O&M production-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +O&M capacity-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Fuel expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Property tax expense ($) 0 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 537,533 +Insurance expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total operating expenses ($) 0 19,395,468 19,394,611 19,394,350 19,394,195 19,394,088 19,394,042 19,394,547 19,398,857 19,396,331 19,393,344 19,392,678 19,391,703 19,390,583 19,389,560 19,389,075 19,391,363 19,392,790 19,387,810 19,387,758 19,387,743 19,387,743 19,387,754 19,387,923 19,389,651 19,394,031 19,387,776 19,387,782 19,387,788 19,387,794 19,387,801 + +EBITDA ($) 0 12,544,233 12,645,187 12,675,926 12,694,102 12,706,799 12,715,416 38,804,482 64,585,684 73,653,184 74,085,852 74,193,459 74,253,142 74,294,095 74,323,657 74,321,899 74,106,618 73,579,988 74,044,375 74,178,418 74,244,750 74,288,145 74,319,481 74,330,891 74,207,085 73,597,075 73,974,033 74,154,972 74,231,018 74,278,597 196,478,087 + +OPERATING ACTIVITIES +EBITDA ($) 0 12,544,233 12,645,187 12,675,926 12,694,102 12,706,799 12,715,416 38,804,482 64,585,684 73,653,184 74,085,852 74,193,459 74,253,142 74,294,095 74,323,657 74,321,899 74,106,618 73,579,988 74,044,375 74,178,418 74,244,750 74,288,145 74,319,481 74,330,891 74,207,085 73,597,075 73,974,033 74,154,972 74,231,018 74,278,597 196,478,087 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +plus PBI if not available for debt service: +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Debt interest payment ($) 0 11,326,624 11,206,716 11,078,414 10,941,131 10,794,239 10,637,063 10,468,886 10,288,936 10,096,390 9,890,365 9,669,919 9,434,041 9,181,652 8,911,596 8,622,635 8,313,448 7,982,617 7,628,629 7,249,861 6,844,579 6,410,928 5,946,921 5,450,433 4,919,192 4,350,763 3,742,545 3,091,751 2,395,402 1,650,308 853,058 +Cash flow from operating activities ($) 0 1,217,609 1,438,471 1,597,512 1,752,971 1,912,561 2,078,353 28,335,597 54,296,748 63,556,794 64,195,487 64,523,541 64,819,101 65,112,443 65,412,061 65,699,263 65,793,170 65,597,371 66,415,746 66,928,557 67,400,170 67,877,217 68,372,560 68,880,457 69,287,893 69,246,312 70,231,488 71,063,221 71,835,616 72,628,289 195,625,029 + +INVESTING ACTIVITIES +Total installed cost ($) -244,333,333 +Debt closing costs ($) 0 +Debt up-front fee ($) 0 +minus: +Total IBI income ($) 0 +Total CBI income ($) 0 +equals: +Purchase of property ($) -244,333,333 +plus: +Reserve (increase)/decrease debt service ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease working capital ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease receivables ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash flow from investing activities ($) -244,333,333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +FINANCING ACTIVITIES +Issuance of equity ($) 82,524,416 +Size of debt ($) 161,808,916 +minus: +Debt principal payment ($) 0 1,712,974 1,832,883 1,961,184 2,098,467 2,245,360 2,402,535 2,570,713 2,750,663 2,943,209 3,149,234 3,369,680 3,605,558 3,857,947 4,128,003 4,416,963 4,726,151 5,056,981 5,410,970 5,789,738 6,195,019 6,628,671 7,092,678 7,589,165 8,120,407 8,688,835 9,297,054 9,947,847 10,644,197 11,389,290 12,186,541 +equals: +Cash flow from financing activities ($) 244,333,333 -1,712,974 -1,832,883 -1,961,184 -2,098,467 -2,245,360 -2,402,535 -2,570,713 -2,750,663 -2,943,209 -3,149,234 -3,369,680 -3,605,558 -3,857,947 -4,128,003 -4,416,963 -4,726,151 -5,056,981 -5,410,970 -5,789,738 -6,195,019 -6,628,671 -7,092,678 -7,589,165 -8,120,407 -8,688,835 -9,297,054 -9,947,847 -10,644,197 -11,389,290 -12,186,541 + +PROJECT RETURNS +Pre-tax Cash Flow: +Cash flow from operating activities ($) 0 1,217,609 1,438,471 1,597,512 1,752,971 1,912,561 2,078,353 28,335,597 54,296,748 63,556,794 64,195,487 64,523,541 64,819,101 65,112,443 65,412,061 65,699,263 65,793,170 65,597,371 66,415,746 66,928,557 67,400,170 67,877,217 68,372,560 68,880,457 69,287,893 69,246,312 70,231,488 71,063,221 71,835,616 72,628,289 195,625,029 +Cash flow from investing activities ($) -244,333,333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Cash flow from financing activities ($) 244,333,333 -1,712,974 -1,832,883 -1,961,184 -2,098,467 -2,245,360 -2,402,535 -2,570,713 -2,750,663 -2,943,209 -3,149,234 -3,369,680 -3,605,558 -3,857,947 -4,128,003 -4,416,963 -4,726,151 -5,056,981 -5,410,970 -5,789,738 -6,195,019 -6,628,671 -7,092,678 -7,589,165 -8,120,407 -8,688,835 -9,297,054 -9,947,847 -10,644,197 -11,389,290 -12,186,541 +Total pre-tax cash flow ($) 0 -495,366 -394,411 -363,672 -345,497 -332,800 -324,182 25,764,884 51,546,085 60,613,585 61,046,253 61,153,861 61,213,543 61,254,496 61,284,058 61,282,300 61,067,019 60,540,390 61,004,776 61,138,819 61,205,151 61,248,546 61,279,882 61,291,292 61,167,486 60,557,477 60,934,435 61,115,373 61,191,419 61,238,998 183,438,489 + +Pre-tax Returns: +Issuance of equity ($) 82,524,416 +Total pre-tax cash flow ($) 0 -495,366 -394,411 -363,672 -345,497 -332,800 -324,182 25,764,884 51,546,085 60,613,585 61,046,253 61,153,861 61,213,543 61,254,496 61,284,058 61,282,300 61,067,019 60,540,390 61,004,776 61,138,819 61,205,151 61,248,546 61,279,882 61,291,292 61,167,486 60,557,477 60,934,435 61,115,373 61,191,419 61,238,998 183,438,489 +Total pre-tax returns ($) -82,524,416 -495,366 -394,411 -363,672 -345,497 -332,800 -324,182 25,764,884 51,546,085 60,613,585 61,046,253 61,153,861 61,213,543 61,254,496 61,284,058 61,282,300 61,067,019 60,540,390 61,004,776 61,138,819 61,205,151 61,248,546 61,279,882 61,291,292 61,167,486 60,557,477 60,934,435 61,115,373 61,191,419 61,238,998 183,438,489 + +After-tax Returns: +Total pre-tax returns ($) -82,524,416 -495,366 -394,411 -363,672 -345,497 -332,800 -324,182 25,764,884 51,546,085 60,613,585 61,046,253 61,153,861 61,213,543 61,254,496 61,284,058 61,282,300 61,067,019 60,540,390 61,004,776 61,138,819 61,205,151 61,248,546 61,279,882 61,291,292 61,167,486 60,557,477 60,934,435 61,115,373 61,191,419 61,238,998 183,438,489 +Federal ITC total income ($) 0 73,300,000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal tax benefit (liability) ($) 0 796,664 1,793,120 1,761,241 1,730,080 1,698,091 1,664,859 -3,598,274 -8,802,057 -10,658,187 -10,786,210 -10,851,967 -10,911,210 -10,970,009 -11,030,066 -11,087,635 -11,106,458 -11,067,211 -11,231,250 -11,334,040 -11,428,573 -12,564,922 -13,704,938 -13,806,743 -13,888,412 -13,880,077 -14,077,551 -14,244,267 -14,399,090 -14,557,977 -39,212,059 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 180,839 407,029 399,793 392,719 385,458 377,915 -816,790 -1,998,022 -2,419,355 -2,448,415 -2,463,342 -2,476,790 -2,490,137 -2,503,769 -2,516,837 -2,521,110 -2,512,201 -2,549,437 -2,572,770 -2,594,228 -2,852,174 -3,110,951 -3,134,061 -3,152,599 -3,150,707 -3,195,533 -3,233,377 -3,268,521 -3,304,587 -8,900,939 +Total after-tax returns ($) -82,524,416 73,782,136 1,805,738 1,797,361 1,777,303 1,750,750 1,718,591 21,349,819 40,746,005 47,536,043 47,811,628 47,838,552 47,825,543 47,794,350 47,750,223 47,677,829 47,439,452 46,960,978 47,224,089 47,232,009 47,182,350 45,831,451 44,463,993 44,350,488 44,126,475 43,526,692 43,661,351 43,637,730 43,523,809 43,376,434 135,325,491 + +After-tax net cash flow ($) -17,035,483 -36,740,426 -28,748,508 73,782,136 1,805,738 1,797,361 1,777,303 1,750,750 1,718,591 21,349,819 40,746,005 47,536,043 47,811,628 47,838,552 47,825,543 47,794,350 47,750,223 47,677,829 47,439,452 46,960,978 47,224,089 47,232,009 47,182,350 45,831,451 44,463,993 44,350,488 44,126,475 43,526,692 43,661,351 43,637,730 43,523,809 43,376,434 135,325,491 +After-tax cumulative IRR (%) NaN NaN NaN -5.90 -4.59 -3.29 -2.07 -0.94 0.06 7.60 14.04 17.90 20.25 21.79 22.86 23.62 24.17 24.59 24.89 25.13 25.30 25.44 25.55 25.63 25.69 25.74 25.77 25.80 25.83 25.84 25.86 25.87 25.90 +After-tax cumulative NPV ($) -17,035,483 -48,977,013 -70,705,945 -22,223,354 -21,191,779 -20,299,105 -19,531,689 -18,874,478 -18,313,604 -12,256,041 -2,205,247 7,988,877 16,902,863 24,656,902 31,396,304 37,251,609 42,337,417 46,752,233 50,571,212 53,857,883 56,731,271 59,229,767 61,399,635 63,232,071 64,777,629 66,117,882 67,277,190 68,271,375 69,138,377 69,891,727 70,544,967 71,110,961 72,646,103 + +AFTER-TAX LCOE AND PPA PRICE +Annual costs ($) -17,035,483 -36,740,426 -28,748,508 41,842,435 -30,234,060 -30,272,915 -30,310,994 -30,350,137 -30,390,867 -36,849,210 -43,238,536 -45,513,472 -45,667,568 -45,747,585 -45,819,302 -45,890,328 -45,962,994 -46,033,145 -46,058,529 -46,011,800 -46,208,096 -46,334,167 -46,450,143 -47,844,437 -49,243,242 -49,368,326 -49,470,261 -49,464,414 -49,700,458 -49,905,024 -50,094,997 -50,289,957 41,626,269 +PPA revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Electricity to grid (kWh) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Present value of annual costs ($) 202,622,024 + +Present value of annual energy costs ($) 0 +Present value of annual energy nominal (kWh) 0 +LCOE Levelized cost of energy nominal (cents/kWh) NaN + +Present value of PPA revenue ($) 0 +Present value of annual energy nominal (kWh) 0 +LPPA Levelized PPA price nominal (cents/kWh) NaN + +Present value of annual heat costs ($) 202,622,024 +Present value of annual heat provided (MMBTU) 44,044,958 +LCOH Levelized cost of heating nominal ($/MMBTU) 4.60 + +PROJECT STATE INCOME TAXES +EBITDA ($) 0 12,544,233 12,645,187 12,675,926 12,694,102 12,706,799 12,715,416 38,804,482 64,585,684 73,653,184 74,085,852 74,193,459 74,253,142 74,294,095 74,323,657 74,321,899 74,106,618 73,579,988 74,044,375 74,178,418 74,244,750 74,288,145 74,319,481 74,330,891 74,207,085 73,597,075 73,974,033 74,154,972 74,231,018 74,278,597 196,478,087 +State taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State taxable IBI income ($) 0 +State taxable CBI income ($) 0 +minus: +Debt interest payment ($) 0 11,326,624 11,206,716 11,078,414 10,941,131 10,794,239 10,637,063 10,468,886 10,288,936 10,096,390 9,890,365 9,669,919 9,434,041 9,181,652 8,911,596 8,622,635 8,313,448 7,982,617 7,628,629 7,249,861 6,844,579 6,410,928 5,946,921 5,450,433 4,919,192 4,350,763 3,742,545 3,091,751 2,395,402 1,650,308 853,058 +Total state tax depreciation ($) 0 5,192,083 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 5,192,083 0 0 0 0 0 0 0 0 0 +equals: +State taxable income ($) 0 -3,974,475 -8,945,695 -8,786,654 -8,631,196 -8,471,606 -8,305,814 17,951,430 43,912,581 53,172,628 53,811,320 54,139,374 54,434,934 54,728,276 55,027,895 55,315,096 55,409,003 55,213,204 56,031,579 56,544,390 57,016,004 62,685,134 68,372,560 68,880,457 69,287,893 69,246,312 70,231,488 71,063,221 71,835,616 72,628,289 195,625,029 + +State income tax rate (frac) 0.0 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 +State tax benefit (liability) ($) 0 180,839 407,029 399,793 392,719 385,458 377,915 -816,790 -1,998,022 -2,419,355 -2,448,415 -2,463,342 -2,476,790 -2,490,137 -2,503,769 -2,516,837 -2,521,110 -2,512,201 -2,549,437 -2,572,770 -2,594,228 -2,852,174 -3,110,951 -3,134,061 -3,152,599 -3,150,707 -3,195,533 -3,233,377 -3,268,521 -3,304,587 -8,900,939 + +PROJECT FEDERAL INCOME TAXES +EBITDA ($) 0 12,544,233 12,645,187 12,675,926 12,694,102 12,706,799 12,715,416 38,804,482 64,585,684 73,653,184 74,085,852 74,193,459 74,253,142 74,294,095 74,323,657 74,321,899 74,106,618 73,579,988 74,044,375 74,178,418 74,244,750 74,288,145 74,319,481 74,330,891 74,207,085 73,597,075 73,974,033 74,154,972 74,231,018 74,278,597 196,478,087 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 180,839 407,029 399,793 392,719 385,458 377,915 -816,790 -1,998,022 -2,419,355 -2,448,415 -2,463,342 -2,476,790 -2,490,137 -2,503,769 -2,516,837 -2,521,110 -2,512,201 -2,549,437 -2,572,770 -2,594,228 -2,852,174 -3,110,951 -3,134,061 -3,152,599 -3,150,707 -3,195,533 -3,233,377 -3,268,521 -3,304,587 -8,900,939 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal taxable IBI income ($) 0 +Federal taxable CBI income ($) 0 +Federal taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +minus: +Debt interest payment ($) 0 11,326,624 11,206,716 11,078,414 10,941,131 10,794,239 10,637,063 10,468,886 10,288,936 10,096,390 9,890,365 9,669,919 9,434,041 9,181,652 8,911,596 8,622,635 8,313,448 7,982,617 7,628,629 7,249,861 6,844,579 6,410,928 5,946,921 5,450,433 4,919,192 4,350,763 3,742,545 3,091,751 2,395,402 1,650,308 853,058 +Total federal tax depreciation ($) 0 5,192,083 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 10,384,167 5,192,083 0 0 0 0 0 0 0 0 0 +equals: +Federal taxable income ($) 0 -3,793,636 -8,538,666 -8,386,862 -8,238,477 -8,086,148 -7,927,899 17,134,640 41,914,559 50,753,273 51,362,905 51,676,033 51,958,145 52,238,139 52,524,126 52,798,260 52,887,893 52,701,004 53,482,142 53,971,620 54,421,776 59,832,960 65,261,608 65,746,396 66,135,294 66,095,605 67,035,956 67,829,844 68,567,095 69,323,702 186,724,090 + +Federal income tax rate (frac) 0.0 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 +Federal tax benefit (liability) ($) 0 796,664 1,793,120 1,761,241 1,730,080 1,698,091 1,664,859 -3,598,274 -8,802,057 -10,658,187 -10,786,210 -10,851,967 -10,911,210 -10,970,009 -11,030,066 -11,087,635 -11,106,458 -11,067,211 -11,231,250 -11,334,040 -11,428,573 -12,564,922 -13,704,938 -13,806,743 -13,888,412 -13,880,077 -14,077,551 -14,244,267 -14,399,090 -14,557,977 -39,212,059 + +CASH INCENTIVES +Federal IBI income ($) 0 +State IBI income ($) 0 +Utility IBI income ($) 0 +Other IBI income ($) 0 +Total IBI income ($) 0 + +Federal CBI income ($) 0 +State CBI income ($) 0 +Utility CBI income ($) 0 +Other CBI income ($) 0 +Total CBI income ($) 0 + +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +TAX CREDITS +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Federal ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC percent income ($) 0 73,300,000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC total income ($) 0 73,300,000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +State ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC percent income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +DEBT REPAYMENT +Debt balance ($) 161,808,916 160,095,942 158,263,059 156,301,875 154,203,407 151,958,047 149,555,512 146,984,799 144,234,136 141,290,927 138,141,693 134,772,013 131,166,456 127,308,509 123,180,506 118,763,543 114,037,392 108,980,411 103,569,441 97,779,703 91,584,684 84,956,013 77,863,336 70,274,171 62,153,764 53,464,929 44,167,875 34,220,028 23,575,831 12,186,541 0 +Debt interest payment ($) 0 11,326,624 11,206,716 11,078,414 10,941,131 10,794,239 10,637,063 10,468,886 10,288,936 10,096,390 9,890,365 9,669,919 9,434,041 9,181,652 8,911,596 8,622,635 8,313,448 7,982,617 7,628,629 7,249,861 6,844,579 6,410,928 5,946,921 5,450,433 4,919,192 4,350,763 3,742,545 3,091,751 2,395,402 1,650,308 853,058 +Debt principal payment ($) 0 1,712,974 1,832,883 1,961,184 2,098,467 2,245,360 2,402,535 2,570,713 2,750,663 2,943,209 3,149,234 3,369,680 3,605,558 3,857,947 4,128,003 4,416,963 4,726,151 5,056,981 5,410,970 5,789,738 6,195,019 6,628,671 7,092,678 7,589,165 8,120,407 8,688,835 9,297,054 9,947,847 10,644,197 11,389,290 12,186,541 +Debt total payment ($) 0 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 + +DSCR (DEBT FRACTION) +EBITDA ($) 0 12,544,233 12,645,187 12,675,926 12,694,102 12,706,799 12,715,416 38,804,482 64,585,684 73,653,184 74,085,852 74,193,459 74,253,142 74,294,095 74,323,657 74,321,899 74,106,618 73,579,988 74,044,375 74,178,418 74,244,750 74,288,145 74,319,481 74,330,891 74,207,085 73,597,075 73,974,033 74,154,972 74,231,018 74,278,597 196,478,087 +minus: +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash available for debt service (CAFDS) ($) 0 12,544,233 12,645,187 12,675,926 12,694,102 12,706,799 12,715,416 38,804,482 64,585,684 73,653,184 74,085,852 74,193,459 74,253,142 74,294,095 74,323,657 74,321,899 74,106,618 73,579,988 74,044,375 74,178,418 74,244,750 74,288,145 74,319,481 74,330,891 74,207,085 73,597,075 73,974,033 74,154,972 74,231,018 74,278,597 196,478,087 +Debt total payment ($) 0 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 13,039,599 +DSCR (pre-tax) 0.0 0.96 0.97 0.97 0.97 0.97 0.98 2.98 4.95 5.65 5.68 5.69 5.69 5.70 5.70 5.70 5.68 5.64 5.68 5.69 5.69 5.70 5.70 5.70 5.69 5.64 5.67 5.69 5.69 5.70 15.07 + +RESERVES +Reserves working capital funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves debt service funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves total reserves balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest on reserves (%/year) 1.75 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/tests/examples/example_SAM-single-owner-PPA-8_heat.txt b/tests/examples/example_SAM-single-owner-PPA-8_heat.txt new file mode 100644 index 000000000..22629b143 --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-8_heat.txt @@ -0,0 +1,108 @@ +# Example: SAM Single Owner PPA Economic Model: Direct-Use Heat +# See documentation: https://softwareengineerprogrammer.github.io/GEOPHIRES/SAM-EM_End-Uses-and-Surface-Applications.html + +# *** ECONOMIC/FINANCIAL PARAMETERS *** +# ************************************* +Economic Model, 5, -- SAM Single Owner PPA + +Inflation Rate, .027, -- US inflation as of December 2025 + +Starting Heat Sale Price, 0.0123 +Ending Heat Sale Price, 0.0359 +Heat Escalation Rate Per Year, 0.01 + +Fraction of Investment in Bonds, .7 +Discount Rate, 0.12 +Inflated Bond Interest Rate, .07 + +Inflated Bond Interest Rate During Construction, 0.105 +Bond Financing Start Year, -1 + +Construction Years, 3 + +Construction CAPEX Schedule, 0.075,0.525,0.4, -- DOE-ATB hybrid scenario + +Investment Tax Credit Rate, 0.3 +Combined Income Tax Rate, .2555 +Property Tax Rate, 0.0022 + +Capital Cost for Power Plant for Electricity Generation, 1900 + +Well Drilling Cost Correlation, 3 +Well Drilling and Completion Capital Cost Adjustment Factor, 0.9, -- 2024b Geothermal ATB + +Reservoir Stimulation Capital Cost per Injection Well, 4 +Reservoir Stimulation Capital Cost per Production Well, 4 + +Field Gathering System Capital Cost Adjustment Factor, 0.35 + +# *** SURFACE & SUBSURFACE TECHNICAL PARAMETERS *** +# ************************************************* + +End-Use Option, 2, -- Direct-Use Heat +Power Plant Type, 9, -- Industrial heat + +Plant Lifetime, 30 + +Surface Temperature, 13 + +Number of Segments, 3 +Gradient 1, 74 +Thickness 1, 2.5 +Gradient 2, 41 +Thickness 2, 0.5 +Gradient 3, 39.1 + +Reservoir Depth, 2.68 + +Reservoir Density, 2800 +Reservoir Heat Capacity, 790 +Reservoir Thermal Conductivity, 3.05 +Reservoir Porosity, 0.0118 + +Reservoir Model, 1, -- Multiple Parallel Fractures (Gringarten) +Reservoir Volume Option, 1, -- FRAC_NUM_SEP: Reservoir volume calculated with fracture separation and number of fractures as input + +Number of Fractures per Stimulated Well, 150 +Fracture Separation, 9.8255 + +Fracture Shape, 4, -- Rectangular +Fracture Width, 305 +Fracture Height, 100 + +Water Loss Fraction, 0.01 + +Ambient Temperature, 11.1728 + +Utilization Factor, .9 +Plant Outlet Pressure, 2000 psi +Circulation Pump Efficiency, 0.80 + +# *** Well Bores Parameters *** + +Number of Production Wells, 6 +Number of Injection Wells per Production Well, 0.666, -- 5-well bench pattern (3 producers : 2 injectors) + +Nonvertical Length per Multilateral Section, 5000 feet +Number of Multilateral Sections, 0, -- This parameter is set to 0 because the cost of horizontal drilling is included within the 'vertical drilling cost.' This approach allows us to more directly convey the overall well drilling and completion cost. + +Production Flow Rate per Well, 100 + +Production Well Diameter, 8.535, -- Inner diameter of 9⅝ inch casing size +Injection Well Diameter, 8.535, -- See Production Well Diameter + +Production Wellhead Pressure, 303 psi + +Injectivity Index, 1.38 +Productivity Index, 1.13 + +Ramey Production Wellbore Model, True, -- Ramey's model estimates the geofluid temperature drop in production wells +Injection Temperature, 53.6, -- Calibrated with GEOPHIRES model-calculated reinjection temperature +Injection Wellbore Temperature Gain, 3 + +Maximum Drawdown, 0.0025 + +# *** SIMULATION PARAMETERS *** +# ***************************** +Maximum Temperature, 500 +Time steps per year, 12 diff --git a/tests/examples/example_SAM-single-owner-PPA-9_cooling.out b/tests/examples/example_SAM-single-owner-PPA-9_cooling.out new file mode 100644 index 000000000..8fbfbba25 --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-9_cooling.out @@ -0,0 +1,474 @@ + ***************** + ***CASE REPORT*** + ***************** + +Simulation Metadata +---------------------- + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-05 + Simulation Time: 07:56 + Calculation Time: 1.823 sec + + ***SUMMARY OF RESULTS*** + + End-Use Option: Direct-Use Heat + Surface Application: Absorption Chiller + Average Direct-Use Heat Production: 367.18 MW + Average Cooling Production: 237.93 MW + Direct-Use Cooling Breakeven Price (LCOC): 9.02 USD/MMBTU + Total CAPEX: 248.47 MUSD + Number of production wells: 6 + Number of injection wells: 4 + Flowrate per production well: 100.0 kg/sec + Well depth: 2.7 kilometer + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***ECONOMIC PARAMETERS*** + + Economic Model = SAM Single Owner PPA + Real Discount Rate: 12.00 % + Nominal Discount Rate: 15.02 % + WACC: 8.57 % + Investment Tax Credit: 74.54 MUSD + Project lifetime: 30 yr + Capacity factor: 90.0 % + Project NPV: 322.78 MUSD + After-tax IRR: 70.10 % + Project VIR=PI=PIR: 5.49 + Project MOIC: 25.44 + Project Payback Period: 3.59 yr + + ***ENGINEERING PARAMETERS*** + + Number of Production Wells: 6 + Number of Injection Wells: 4 + Well depth: 2.7 kilometer + Water loss rate: 1.0 % + Pump efficiency: 80.0 % + Injection temperature: 56.6 degC + Production Wellbore heat transmission calculated with Ramey's model + Average production well temperature drop: 0.3 degC + Flowrate per production well: 100.0 kg/sec + Injection well casing ID: 8.535 in + Production well casing ID: 8.535 in + Number of times redrilling: 3 + + + ***RESOURCE CHARACTERISTICS*** + + Maximum reservoir temperature: 500.0 degC + Number of segments: 3 + Segment 1 Geothermal gradient: 74 degC/km + Segment 1 Thickness: 2.5 kilometer + Segment 2 Geothermal gradient: 41 degC/km + Segment 2 Thickness: 0.5 kilometer + Segment 3 Geothermal gradient: 39.1 degC/km + + + ***RESERVOIR PARAMETERS*** + + Reservoir Model = Multiple Parallel Fractures Model (Gringarten) + Bottom-hole temperature: 205.38 degC + Fracture model = Rectangular + Well separation: fracture height: 100.00 meter + Fracture width: 305.00 meter + Fracture area: 30500.00 m**2 + Reservoir volume calculated with fracture separation and number of fractures as input + Number of fractures: 1500 + Fracture separation: 9.83 meter + Reservoir volume: 449216947 m**3 + Reservoir hydrostatic pressure: 25324.54 kPa + Plant outlet pressure: 13789.51 kPa + Production wellhead pressure: 2089.11 kPa + Productivity Index: 1.13 kg/sec/bar + Injectivity Index: 1.38 kg/sec/bar + Reservoir density: 2800.00 kg/m**3 + Reservoir thermal conductivity: 3.05 W/m/K + Reservoir heat capacity: 790.00 J/kg/K + + + ***RESERVOIR SIMULATION RESULTS*** + + Maximum Production Temperature: 203.1 degC + Average Production Temperature: 202.8 degC + Minimum Production Temperature: 201.4 degC + Initial Production Temperature: 201.6 degC + Average Reservoir Heat Extraction: 367.18 MW + Production Wellbore Heat Transmission Model = Ramey Model + Average Production Well Temperature Drop: 0.3 degC + Average Injection Well Pump Pressure Drop: -1925.9 kPa + Average Production Well Pump Pressure Drop: 9514.6 kPa + + + ***CAPITAL COSTS (M$)*** + + Exploration costs: 4.71 MUSD + Drilling and completion costs: 46.49 MUSD + Drilling and completion costs per well: 4.65 MUSD + Stimulation costs: 48.30 MUSD + Surface power plant costs: 122.21 MUSD + of which Absorption Chiller Cost: 3.74 MUSD + Field gathering system costs: 3.20 MUSD + Total surface equipment costs: 125.41 MUSD + Overnight Capital Cost: 224.91 MUSD + Inflation costs during construction: 14.40 MUSD + Interest during construction: 9.15 MUSD + Total CAPEX: 248.47 MUSD + + + ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** + + Wellfield maintenance costs: 1.11 MUSD/yr + Power plant maintenance costs: 3.62 MUSD/yr + Water costs: 0.16 MUSD/yr + Average Reservoir Pumping Cost: 4.49 MUSD/yr + Absorption Chiller O&M Cost: 0.07 MUSD/yr + Redrilling costs: 9.48 MUSD/yr + Total operating and maintenance costs: 18.92 MUSD/yr + + + ***SURFACE EQUIPMENT SIMULATION RESULTS*** + Maximum Net Heat Production: 367.93 MW + Average Net Heat Production: 367.18 MW + Minimum Net Heat Production: 363.53 MW + Initial Net Heat Production: 364.19 MW + Average Annual Heat Production: 2894.87 GWh + Maximum Cooling Production: 238.42 MW + Average Cooling Production: 237.93 MW + Minimum Cooling Production: 235.57 MW + Initial Cooling Production: 235.99 MW + Average Annual Cooling Production: 1875.87 GWh/year + Average Pumping Power: 8.14 MW + + ************************************************************ + * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ************************************************************ + YEAR THERMAL GEOFLUID PUMP NET NET + DRAWDOWN TEMPERATURE POWER HEAT COOLING + (deg C) (MWe) (MWt) (MWt) + 0 1.0000 201.65 8.1512 364.1877 235.9936 + 1 1.0052 202.70 8.1476 366.8301 237.7059 + 2 1.0062 202.90 8.1469 367.3208 238.0238 + 3 1.0067 203.00 8.1466 367.5759 238.1892 + 4 1.0070 203.06 8.1463 367.7447 238.2986 + 5 1.0073 203.11 8.1462 367.8679 238.3784 + 6 1.0074 203.14 8.1463 367.9263 238.4162 + 7 1.0066 202.98 8.1488 367.5271 238.1575 + 8 1.0008 201.81 8.1651 364.6023 236.2623 + 9 1.0048 202.61 8.1453 366.6030 237.5588 + 10 1.0060 202.86 8.1444 367.2319 237.9663 + 11 1.0066 202.98 8.1429 367.5230 238.1549 + 12 1.0070 203.05 8.1409 367.7077 238.2746 + 13 1.0072 203.10 8.1389 367.8406 238.3607 + 14 1.0074 203.14 8.1373 367.9257 238.4158 + 15 1.0070 203.06 8.1377 367.7338 238.2915 + 16 1.0032 202.29 8.1481 365.8081 237.0437 + 17 1.0041 202.47 8.1350 366.2557 237.3337 + 18 1.0058 202.82 8.1348 367.1261 237.8977 + 19 1.0065 202.95 8.1348 367.4638 238.1166 + 20 1.0069 203.03 8.1348 367.6676 238.2486 + 21 1.0072 203.09 8.1348 367.8109 238.3415 + 22 1.0074 203.13 8.1348 367.9126 238.4074 + 23 1.0072 203.11 8.1357 367.8489 238.3661 + 24 1.0048 202.62 8.1429 366.6355 237.5798 + 25 1.0027 202.20 8.1348 365.5740 236.8920 + 26 1.0055 202.77 8.1348 366.9963 237.8136 + 27 1.0063 202.93 8.1348 367.3971 238.0733 + 28 1.0068 203.02 8.1349 367.6239 238.2203 + 29 1.0071 203.08 8.1349 367.7790 238.3208 + + + ******************************************************************* + * ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ******************************************************************* + YEAR COOLING HEAT RESERVOIR PERCENTAGE OF + PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED + (GWh/year) (GWh/year) (10^15 J) (%) + 1 1869.6 2885.2 137.45 7.03 + 2 1875.5 2894.3 127.03 14.07 + 3 1877.3 2897.0 116.60 21.13 + 4 1878.3 2898.7 106.17 28.19 + 5 1879.1 2899.8 95.73 35.25 + 6 1879.6 2900.6 85.29 42.31 + 7 1879.1 2899.8 74.85 49.37 + 8 1872.1 2889.0 64.45 56.41 + 9 1866.2 2879.9 54.08 63.42 + 10 1874.8 2893.2 43.66 70.47 + 11 1876.9 2896.5 33.24 77.52 + 12 1878.1 2898.3 22.80 84.58 + 13 1878.9 2899.6 12.36 91.64 + 14 1879.5 2900.4 1.92 98.70 + 15 1879.4 2900.4 -8.52 105.76 + 16 1875.2 2893.8 -18.94 112.81 + 17 1864.6 2877.5 -29.30 119.82 + 18 1873.8 2891.7 -39.71 126.86 + 19 1876.5 2895.9 -50.13 133.91 + 20 1877.9 2897.9 -60.56 140.97 + 21 1878.7 2899.3 -71.00 148.03 + 22 1879.4 2900.3 -81.44 155.09 + 23 1879.6 2900.6 -91.89 162.15 + 24 1877.1 2896.8 -102.31 169.21 + 25 1865.0 2878.1 -112.68 176.22 + 26 1872.4 2889.6 -123.08 183.25 + 27 1876.1 2895.2 -133.50 190.30 + 28 1877.6 2897.5 -143.93 197.36 + 29 1878.5 2899.0 -154.37 204.42 + 30 1879.2 2900.0 -164.81 211.48 + + *************************** + * SAM CASH FLOW PROFILE * + *************************** +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + Year -2 Year -1 Year 0 Year 1 Year 2 Year 3 Year 4 Year 5 Year 6 Year 7 Year 8 Year 9 Year 10 Year 11 Year 12 Year 13 Year 14 Year 15 Year 16 Year 17 Year 18 Year 19 Year 20 Year 21 Year 22 Year 23 Year 24 Year 25 Year 26 Year 27 Year 28 Year 29 Year 30 +CONSTRUCTION +Capital expenditure schedule [construction] (%) 7.50 52.50 40.0 +Overnight capital expenditure [construction] ($) -16,868,117 -118,076,819 -89,963,291 +plus: +Inflation cost [construction] ($) -455,439 -6,462,226 -7,485,547 +plus: +Royalty supplemental payments [construction] ($) 0 0 0 +equals: +Nominal capital expenditure [construction] ($) -17,323,556 -124,539,045 -97,448,838 + +Issuance of equity [construction] ($) 17,323,556 37,361,714 29,234,651 +Issuance of debt [construction] ($) 0 87,177,332 68,214,186 +Debt balance [construction] ($) 0 87,177,332 164,545,138 +Debt interest payment [construction] ($) 0 0 9,153,620 + +Installed cost [construction] ($) -17,323,556 -124,539,045 -106,602,458 +After-tax net cash flow [construction] ($) -17,323,556 -37,361,714 -29,234,651 + +ENERGY +Electricity to grid (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +Electricity to grid net (kWh) 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + +Cooling provided (kWh) 0 1,869,641,058 1,875,500,352 1,877,284,464 1,878,339,361 1,879,076,288 1,879,578,043 1,879,071,780 1,872,101,213 1,866,174,120 1,874,791,681 1,876,936,451 1,878,113,889 1,878,912,769 1,879,485,128 1,879,440,147 1,875,168,427 1,864,635,099 1,873,848,846 1,876,536,111 1,877,866,147 1,878,736,464 1,879,365,149 1,879,597,391 1,877,149,026 1,865,002,674 1,872,437,395 1,876,066,382 1,877,591,655 1,878,546,001 1,879,204,462 + +REVENUE +PPA price (cents/kWh) 0.0 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 5.50 +PPA revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Curtailment payment revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Cooling price ($/kWh) 0.0 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 0.07 +Cooling revenue ($) 0 122,461,489 122,845,273 122,962,132 123,031,228 123,079,497 123,112,362 123,079,202 122,622,629 122,234,405 122,798,855 122,939,338 123,016,460 123,068,786 123,106,276 123,103,330 122,823,532 122,133,599 122,737,099 122,913,115 123,000,233 123,057,238 123,098,417 123,113,629 122,953,261 122,157,675 122,644,649 122,882,348 122,982,253 123,044,763 123,087,892 +equals: +Capacity payment revenue ($) 0 122,461,489 122,845,273 122,962,132 123,031,228 123,079,497 123,112,362 123,079,202 122,622,629 122,234,405 122,798,855 122,939,338 123,016,460 123,068,786 123,106,276 123,103,330 122,823,532 122,133,599 122,737,099 122,913,115 123,000,233 123,057,238 123,098,417 123,113,629 122,953,261 122,157,675 122,644,649 122,882,348 122,982,253 123,044,763 123,087,892 + +Salvage value ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124,232,530 +Total revenue ($) 0 122,461,489 122,845,273 122,962,132 123,031,228 123,079,497 123,112,362 123,079,202 122,622,629 122,234,405 122,798,855 122,939,338 123,016,460 123,068,786 123,106,276 123,103,330 122,823,532 122,133,599 122,737,099 122,913,115 123,000,233 123,057,238 123,098,417 123,113,629 122,953,261 122,157,675 122,644,649 122,882,348 122,982,253 123,044,763 247,320,422 + +Property tax net assessed value ($) 0 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 248,465,059 + +OPERATING EXPENSES +O&M fixed expense ($) 0 18,922,935 18,922,078 18,921,816 18,921,662 18,921,555 18,921,509 18,922,013 18,926,324 18,923,798 18,920,811 18,920,144 18,919,170 18,918,050 18,917,027 18,916,542 18,918,830 18,920,256 18,915,277 18,915,225 18,915,210 18,915,210 18,915,221 18,915,390 18,917,118 18,921,498 18,915,242 18,915,249 18,915,255 18,915,261 18,915,268 +O&M production-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +O&M capacity-based expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Fuel expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Property tax expense ($) 0 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 546,623 +Insurance expense ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total operating expenses ($) 0 19,469,558 19,468,701 19,468,439 19,468,285 19,468,178 19,468,132 19,468,636 19,472,947 19,470,421 19,467,434 19,466,768 19,465,793 19,464,673 19,463,650 19,463,165 19,465,453 19,466,879 19,461,900 19,461,848 19,461,833 19,461,833 19,461,844 19,462,013 19,463,741 19,468,121 19,461,865 19,461,872 19,461,878 19,461,884 19,461,891 + +EBITDA ($) 0 102,991,931 103,376,572 103,493,693 103,562,943 103,611,319 103,644,230 103,610,566 103,149,682 102,763,984 103,331,421 103,472,570 103,550,667 103,604,113 103,642,626 103,640,165 103,358,079 102,666,720 103,275,199 103,451,267 103,538,400 103,595,405 103,636,573 103,651,616 103,489,520 102,689,554 103,182,784 103,420,476 103,520,375 103,582,879 227,858,531 + +OPERATING ACTIVITIES +EBITDA ($) 0 102,991,931 103,376,572 103,493,693 103,562,943 103,611,319 103,644,230 103,610,566 103,149,682 102,763,984 103,331,421 103,472,570 103,550,667 103,604,113 103,642,626 103,640,165 103,358,079 102,666,720 103,275,199 103,451,267 103,538,400 103,595,405 103,636,573 103,651,616 103,489,520 102,689,554 103,182,784 103,420,476 103,520,375 103,582,879 227,858,531 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +plus PBI if not available for debt service: +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Debt interest payment ($) 0 11,518,160 11,396,224 11,265,752 11,126,148 10,976,771 10,816,938 10,645,917 10,462,924 10,267,122 10,057,613 9,833,439 9,593,573 9,336,916 9,062,293 8,768,446 8,454,030 8,117,605 7,757,630 7,372,458 6,960,322 6,519,338 6,047,485 5,542,601 5,002,376 4,424,336 3,805,832 3,144,033 2,435,909 1,678,215 867,483 +Cash flow from operating activities ($) 0 91,473,771 91,980,349 92,227,940 92,436,795 92,634,548 92,827,292 92,964,649 92,686,758 92,496,862 93,273,808 93,639,132 93,957,094 94,267,197 94,580,334 94,871,719 94,904,049 94,549,114 95,517,568 96,078,809 96,578,077 97,076,067 97,589,088 98,109,014 98,487,143 98,265,219 99,376,951 100,276,443 101,084,466 101,904,664 226,991,047 + +INVESTING ACTIVITIES +Total installed cost ($) -248,465,059 +Debt closing costs ($) 0 +Debt up-front fee ($) 0 +minus: +Total IBI income ($) 0 +Total CBI income ($) 0 +equals: +Purchase of property ($) -248,465,059 +plus: +Reserve (increase)/decrease debt service ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease working capital ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease receivables ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve (increase)/decrease major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 1 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 2 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserve capital spending major equipment 3 ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash flow from investing activities ($) -248,465,059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +FINANCING ACTIVITIES +Issuance of equity ($) 83,919,921 +Size of debt ($) 164,545,138 +minus: +Debt principal payment ($) 0 1,741,941 1,863,877 1,994,349 2,133,953 2,283,330 2,443,163 2,614,184 2,797,177 2,992,979 3,202,488 3,426,662 3,666,528 3,923,185 4,197,808 4,491,655 4,806,071 5,142,496 5,502,470 5,887,643 6,299,778 6,740,763 7,212,616 7,717,499 8,257,724 8,835,765 9,454,269 10,116,067 10,824,192 11,581,886 12,392,618 +equals: +Cash flow from financing activities ($) 248,465,059 -1,741,941 -1,863,877 -1,994,349 -2,133,953 -2,283,330 -2,443,163 -2,614,184 -2,797,177 -2,992,979 -3,202,488 -3,426,662 -3,666,528 -3,923,185 -4,197,808 -4,491,655 -4,806,071 -5,142,496 -5,502,470 -5,887,643 -6,299,778 -6,740,763 -7,212,616 -7,717,499 -8,257,724 -8,835,765 -9,454,269 -10,116,067 -10,824,192 -11,581,886 -12,392,618 + +PROJECT RETURNS +Pre-tax Cash Flow: +Cash flow from operating activities ($) 0 91,473,771 91,980,349 92,227,940 92,436,795 92,634,548 92,827,292 92,964,649 92,686,758 92,496,862 93,273,808 93,639,132 93,957,094 94,267,197 94,580,334 94,871,719 94,904,049 94,549,114 95,517,568 96,078,809 96,578,077 97,076,067 97,589,088 98,109,014 98,487,143 98,265,219 99,376,951 100,276,443 101,084,466 101,904,664 226,991,047 +Cash flow from investing activities ($) -248,465,059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Cash flow from financing activities ($) 248,465,059 -1,741,941 -1,863,877 -1,994,349 -2,133,953 -2,283,330 -2,443,163 -2,614,184 -2,797,177 -2,992,979 -3,202,488 -3,426,662 -3,666,528 -3,923,185 -4,197,808 -4,491,655 -4,806,071 -5,142,496 -5,502,470 -5,887,643 -6,299,778 -6,740,763 -7,212,616 -7,717,499 -8,257,724 -8,835,765 -9,454,269 -10,116,067 -10,824,192 -11,581,886 -12,392,618 +Total pre-tax cash flow ($) 0 89,731,830 90,116,471 90,233,592 90,302,842 90,351,218 90,384,129 90,350,465 89,889,581 89,503,883 90,071,320 90,212,470 90,290,566 90,344,012 90,382,525 90,380,064 90,097,978 89,406,619 90,015,098 90,191,166 90,278,299 90,335,304 90,376,472 90,391,515 90,229,419 89,429,453 89,922,683 90,160,375 90,260,274 90,322,778 214,598,430 + +Pre-tax Returns: +Issuance of equity ($) 83,919,921 +Total pre-tax cash flow ($) 0 89,731,830 90,116,471 90,233,592 90,302,842 90,351,218 90,384,129 90,350,465 89,889,581 89,503,883 90,071,320 90,212,470 90,290,566 90,344,012 90,382,525 90,380,064 90,097,978 89,406,619 90,015,098 90,191,166 90,278,299 90,335,304 90,376,472 90,391,515 90,229,419 89,429,453 89,922,683 90,160,375 90,260,274 90,322,778 214,598,430 +Total pre-tax returns ($) -83,919,921 89,731,830 90,116,471 90,233,592 90,302,842 90,351,218 90,384,129 90,350,465 89,889,581 89,503,883 90,071,320 90,212,470 90,290,566 90,344,012 90,382,525 90,380,064 90,097,978 89,406,619 90,015,098 90,191,166 90,278,299 90,335,304 90,376,472 90,391,515 90,229,419 89,429,453 89,922,683 90,160,375 90,260,274 90,322,778 214,598,430 + +After-tax Returns: +Total pre-tax returns ($) -83,919,921 89,731,830 90,116,471 90,233,592 90,302,842 90,351,218 90,384,129 90,350,465 89,889,581 89,503,883 90,071,320 90,212,470 90,290,566 90,344,012 90,382,525 90,380,064 90,097,978 89,406,619 90,015,098 90,191,166 90,278,299 90,335,304 90,376,472 90,391,515 90,229,419 89,429,453 89,922,683 90,160,375 90,260,274 90,322,778 214,598,430 +Federal ITC total income ($) 0 74,539,518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal tax benefit (liability) ($) 0 -17,277,134 -16,320,349 -16,369,977 -16,411,841 -16,451,480 -16,490,114 -16,517,647 -16,461,945 -16,423,881 -16,579,616 -16,652,844 -16,716,578 -16,778,736 -16,841,503 -16,899,910 -16,906,390 -16,835,245 -17,029,367 -17,141,865 -17,241,941 -18,400,086 -19,561,245 -19,665,461 -19,741,255 -19,696,772 -19,919,613 -20,099,912 -20,261,876 -20,426,280 -45,499,221 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -3,921,822 -3,704,637 -3,715,902 -3,725,405 -3,734,403 -3,743,172 -3,749,422 -3,736,778 -3,728,138 -3,763,489 -3,780,111 -3,794,578 -3,808,688 -3,822,936 -3,836,194 -3,837,665 -3,821,515 -3,865,580 -3,891,117 -3,913,833 -4,176,726 -4,440,304 -4,463,960 -4,481,165 -4,471,067 -4,521,651 -4,562,578 -4,599,343 -4,636,662 -10,328,093 +Total after-tax returns ($) -83,919,921 143,072,392 70,091,486 70,147,712 70,165,596 70,165,336 70,150,842 70,083,396 69,690,858 69,351,864 69,728,215 69,779,515 69,779,410 69,756,587 69,718,087 69,643,960 69,353,923 68,749,858 69,120,151 69,158,185 69,122,525 67,758,492 66,374,924 66,262,093 66,006,999 65,261,614 65,481,418 65,497,886 65,399,055 65,259,836 158,771,117 + +After-tax net cash flow ($) -17,323,556 -37,361,714 -29,234,651 143,072,392 70,091,486 70,147,712 70,165,596 70,165,336 70,150,842 70,083,396 69,690,858 69,351,864 69,728,215 69,779,515 69,779,410 69,756,587 69,718,087 69,643,960 69,353,923 68,749,858 69,120,151 69,158,185 69,122,525 67,758,492 66,374,924 66,262,093 66,006,999 65,261,614 65,481,418 65,497,886 65,399,055 65,259,836 158,771,117 +After-tax cumulative IRR (%) NaN NaN NaN 31.79 51.18 60.26 64.78 67.14 68.43 69.14 69.55 69.78 69.91 69.99 70.03 70.06 70.08 70.08 70.09 70.09 70.09 70.10 70.10 70.10 70.10 70.10 70.10 70.10 70.10 70.10 70.10 70.10 70.10 +After-tax cumulative NPV ($) -17,323,556 -49,805,224 -71,901,597 22,111,951 62,153,549 96,992,990 127,289,557 153,628,803 176,522,987 196,407,682 213,598,287 228,470,822 241,470,930 252,781,328 262,614,389 271,160,298 278,585,871 285,034,680 290,617,822 295,429,438 299,635,109 303,293,464 306,472,338 309,181,463 311,488,639 313,491,052 315,225,215 316,715,842 318,016,135 319,146,872 320,128,434 320,979,971 322,781,082 + +AFTER-TAX LCOE AND PPA PRICE +Annual costs ($) -17,323,556 -37,361,714 -29,234,651 20,610,903 -52,753,787 -52,814,420 -52,865,632 -52,914,161 -52,961,520 -52,995,806 -52,931,771 -52,882,541 -53,070,640 -53,159,823 -53,237,050 -53,312,199 -53,388,189 -53,459,370 -53,469,609 -53,383,741 -53,616,948 -53,754,930 -53,877,708 -55,298,746 -56,723,493 -56,851,536 -56,946,262 -56,896,061 -57,163,231 -57,384,462 -57,583,198 -57,784,927 35,683,225 +PPA revenue ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Electricity to grid (kWh) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Present value of annual costs ($) 285,974,584 + +Present value of annual energy costs ($) 0 +Present value of annual energy nominal (kWh) 0 +LCOE Levelized cost of energy nominal (cents/kWh) NaN + +Present value of PPA revenue ($) 0 +Present value of annual energy nominal (kWh) 0 +LPPA Levelized PPA price nominal (cents/kWh) NaN + +Present value of annual cooling costs ($) 285,974,584 +Present value of annual cooling provided (MMBTU) 31,712,370 +LCOC Levelized cost of cooling nominal ($/MMBTU) 9.02 + +PROJECT STATE INCOME TAXES +EBITDA ($) 0 102,991,931 103,376,572 103,493,693 103,562,943 103,611,319 103,644,230 103,610,566 103,149,682 102,763,984 103,331,421 103,472,570 103,550,667 103,604,113 103,642,626 103,640,165 103,358,079 102,666,720 103,275,199 103,451,267 103,538,400 103,595,405 103,636,573 103,651,616 103,489,520 102,689,554 103,182,784 103,420,476 103,520,375 103,582,879 227,858,531 +State taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State taxable IBI income ($) 0 +State taxable CBI income ($) 0 +minus: +Debt interest payment ($) 0 11,518,160 11,396,224 11,265,752 11,126,148 10,976,771 10,816,938 10,645,917 10,462,924 10,267,122 10,057,613 9,833,439 9,593,573 9,336,916 9,062,293 8,768,446 8,454,030 8,117,605 7,757,630 7,372,458 6,960,322 6,519,338 6,047,485 5,542,601 5,002,376 4,424,336 3,805,832 3,144,033 2,435,909 1,678,215 867,483 +Total state tax depreciation ($) 0 5,279,883 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 5,279,883 0 0 0 0 0 0 0 0 0 +equals: +State taxable income ($) 0 86,193,889 81,420,584 81,668,175 81,877,030 82,074,783 82,267,527 82,404,884 82,126,993 81,937,097 82,714,043 83,079,367 83,397,329 83,707,432 84,020,569 84,311,954 84,344,284 83,989,349 84,957,803 85,519,044 86,018,312 91,796,185 97,589,088 98,109,014 98,487,143 98,265,219 99,376,951 100,276,443 101,084,466 101,904,664 226,991,047 + +State income tax rate (frac) 0.0 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 +State tax benefit (liability) ($) 0 -3,921,822 -3,704,637 -3,715,902 -3,725,405 -3,734,403 -3,743,172 -3,749,422 -3,736,778 -3,728,138 -3,763,489 -3,780,111 -3,794,578 -3,808,688 -3,822,936 -3,836,194 -3,837,665 -3,821,515 -3,865,580 -3,891,117 -3,913,833 -4,176,726 -4,440,304 -4,463,960 -4,481,165 -4,471,067 -4,521,651 -4,562,578 -4,599,343 -4,636,662 -10,328,093 + +PROJECT FEDERAL INCOME TAXES +EBITDA ($) 0 102,991,931 103,376,572 103,493,693 103,562,943 103,611,319 103,644,230 103,610,566 103,149,682 102,763,984 103,331,421 103,472,570 103,550,667 103,604,113 103,642,626 103,640,165 103,358,079 102,666,720 103,275,199 103,451,267 103,538,400 103,595,405 103,636,573 103,651,616 103,489,520 102,689,554 103,182,784 103,420,476 103,520,375 103,582,879 227,858,531 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State tax benefit (liability) ($) 0 -3,921,822 -3,704,637 -3,715,902 -3,725,405 -3,734,403 -3,743,172 -3,749,422 -3,736,778 -3,728,138 -3,763,489 -3,780,111 -3,794,578 -3,808,688 -3,822,936 -3,836,194 -3,837,665 -3,821,515 -3,865,580 -3,891,117 -3,913,833 -4,176,726 -4,440,304 -4,463,960 -4,481,165 -4,471,067 -4,521,651 -4,562,578 -4,599,343 -4,636,662 -10,328,093 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal taxable IBI income ($) 0 +Federal taxable CBI income ($) 0 +Federal taxable PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +minus: +Debt interest payment ($) 0 11,518,160 11,396,224 11,265,752 11,126,148 10,976,771 10,816,938 10,645,917 10,462,924 10,267,122 10,057,613 9,833,439 9,593,573 9,336,916 9,062,293 8,768,446 8,454,030 8,117,605 7,757,630 7,372,458 6,960,322 6,519,338 6,047,485 5,542,601 5,002,376 4,424,336 3,805,832 3,144,033 2,435,909 1,678,215 867,483 +Total federal tax depreciation ($) 0 5,279,883 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 10,559,765 5,279,883 0 0 0 0 0 0 0 0 0 +equals: +Federal taxable income ($) 0 82,272,067 77,715,947 77,952,273 78,151,625 78,340,380 78,524,355 78,655,462 78,390,215 78,208,960 78,950,554 79,299,255 79,602,751 79,898,744 80,197,633 80,475,760 80,506,619 80,167,834 81,092,223 81,627,928 82,104,479 87,619,458 93,148,785 93,645,054 94,005,978 93,794,151 94,855,300 95,713,865 96,485,123 97,268,002 216,662,955 + +Federal income tax rate (frac) 0.0 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21 +Federal tax benefit (liability) ($) 0 -17,277,134 -16,320,349 -16,369,977 -16,411,841 -16,451,480 -16,490,114 -16,517,647 -16,461,945 -16,423,881 -16,579,616 -16,652,844 -16,716,578 -16,778,736 -16,841,503 -16,899,910 -16,906,390 -16,835,245 -17,029,367 -17,141,865 -17,241,941 -18,400,086 -19,561,245 -19,665,461 -19,741,255 -19,696,772 -19,919,613 -20,099,912 -20,261,876 -20,426,280 -45,499,221 + +CASH INCENTIVES +Federal IBI income ($) 0 +State IBI income ($) 0 +Utility IBI income ($) 0 +Other IBI income ($) 0 +Total IBI income ($) 0 + +Federal CBI income ($) 0 +State CBI income ($) 0 +Utility CBI income ($) 0 +Other CBI income ($) 0 +Total CBI income ($) 0 + +Federal PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Utility PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Other PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Total PBI income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +TAX CREDITS +Federal PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State PTC income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Federal ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC percent income ($) 0 74,539,518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Federal ITC total income ($) 0 74,539,518 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +State ITC amount income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC percent income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +State ITC total income ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +DEBT REPAYMENT +Debt balance ($) 164,545,138 162,803,197 160,939,320 158,944,971 156,811,018 154,527,689 152,084,526 149,470,342 146,673,165 143,680,186 140,477,698 137,051,036 133,384,507 129,461,322 125,263,514 120,771,859 115,965,788 110,823,292 105,320,822 99,433,178 93,133,400 86,392,637 79,180,021 71,462,521 63,204,797 54,369,032 44,914,763 34,798,696 23,974,503 12,392,618 0 +Debt interest payment ($) 0 11,518,160 11,396,224 11,265,752 11,126,148 10,976,771 10,816,938 10,645,917 10,462,924 10,267,122 10,057,613 9,833,439 9,593,573 9,336,916 9,062,293 8,768,446 8,454,030 8,117,605 7,757,630 7,372,458 6,960,322 6,519,338 6,047,485 5,542,601 5,002,376 4,424,336 3,805,832 3,144,033 2,435,909 1,678,215 867,483 +Debt principal payment ($) 0 1,741,941 1,863,877 1,994,349 2,133,953 2,283,330 2,443,163 2,614,184 2,797,177 2,992,979 3,202,488 3,426,662 3,666,528 3,923,185 4,197,808 4,491,655 4,806,071 5,142,496 5,502,470 5,887,643 6,299,778 6,740,763 7,212,616 7,717,499 8,257,724 8,835,765 9,454,269 10,116,067 10,824,192 11,581,886 12,392,618 +Debt total payment ($) 0 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 + +DSCR (DEBT FRACTION) +EBITDA ($) 0 102,991,931 103,376,572 103,493,693 103,562,943 103,611,319 103,644,230 103,610,566 103,149,682 102,763,984 103,331,421 103,472,570 103,550,667 103,604,113 103,642,626 103,640,165 103,358,079 102,666,720 103,275,199 103,451,267 103,538,400 103,595,405 103,636,573 103,651,616 103,489,520 102,689,554 103,182,784 103,420,476 103,520,375 103,582,879 227,858,531 +minus: +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +equals: +Cash available for debt service (CAFDS) ($) 0 102,991,931 103,376,572 103,493,693 103,562,943 103,611,319 103,644,230 103,610,566 103,149,682 102,763,984 103,331,421 103,472,570 103,550,667 103,604,113 103,642,626 103,640,165 103,358,079 102,666,720 103,275,199 103,451,267 103,538,400 103,595,405 103,636,573 103,651,616 103,489,520 102,689,554 103,182,784 103,420,476 103,520,375 103,582,879 227,858,531 +Debt total payment ($) 0 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 13,260,101 +DSCR (pre-tax) 0.0 7.77 7.80 7.80 7.81 7.81 7.82 7.81 7.78 7.75 7.79 7.80 7.81 7.81 7.82 7.82 7.79 7.74 7.79 7.80 7.81 7.81 7.82 7.82 7.80 7.74 7.78 7.80 7.81 7.81 17.18 + +RESERVES +Reserves working capital funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves working capital balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves debt service funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves debt service balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves receivables funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves receivables balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 1 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 1 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 2 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 2 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves major equipment 3 funding ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 disbursement ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Reserves major equipment 3 balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +Reserves total reserves balance ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Interest on reserves (%/year) 1.75 +Interest earned on reserves ($) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ diff --git a/tests/examples/example_SAM-single-owner-PPA-9_cooling.txt b/tests/examples/example_SAM-single-owner-PPA-9_cooling.txt new file mode 100644 index 000000000..b2419099e --- /dev/null +++ b/tests/examples/example_SAM-single-owner-PPA-9_cooling.txt @@ -0,0 +1,111 @@ +# Example: SAM Single Owner PPA Economic Model: Cooling (Direct-Use Heat with Absorption Chiller Surface Application) +# See documentation: https://softwareengineerprogrammer.github.io/GEOPHIRES/SAM-EM_End-Uses-and-Surface-Applications.html + +# *** ECONOMIC/FINANCIAL PARAMETERS *** +# ************************************* +Economic Model, 5, -- SAM Single Owner PPA + +Inflation Rate, .027, -- US inflation as of December 2025 + +Starting Cooling Sale Price,0.0655 +Ending Cooling Sale Price,0.0655 +Electricity Rate, .07, -- [$/kWh] +Absorption Chiller Capital Cost, 3.74, -- [$M] +Absorption Chiller O&M Cost, 0.065, -- [$M/year] + +Fraction of Investment in Bonds, .7 +Discount Rate, 0.12 +Inflated Bond Interest Rate, .07 + +Inflated Bond Interest Rate During Construction, 0.105 +Bond Financing Start Year, -1 + +Construction Years, 3 + +Construction CAPEX Schedule, 0.075,0.525,0.4, -- DOE-ATB hybrid scenario + +Investment Tax Credit Rate, 0.3 +Combined Income Tax Rate, .2555 +Property Tax Rate, 0.0022 + +Capital Cost for Power Plant for Electricity Generation, 1900 + +Well Drilling Cost Correlation, 3 +Well Drilling and Completion Capital Cost Adjustment Factor, 0.9, -- 2024b Geothermal ATB + +Reservoir Stimulation Capital Cost per Injection Well, 4 +Reservoir Stimulation Capital Cost per Production Well, 4 + +Field Gathering System Capital Cost Adjustment Factor, 0.35 + +# *** SURFACE & SUBSURFACE TECHNICAL PARAMETERS *** +# ************************************************* + +End-Use Option, 2, -- Direct-Use Heat +Power Plant Type, 5, -- Absorption Chiller +Absorption Chiller COP, 0.72 + +Plant Lifetime, 30 + +Surface Temperature, 13 + +Number of Segments, 3 +Gradient 1, 74 +Thickness 1, 2.5 +Gradient 2, 41 +Thickness 2, 0.5 +Gradient 3, 39.1 + +Reservoir Depth, 2.68 + +Reservoir Density, 2800 +Reservoir Heat Capacity, 790 +Reservoir Thermal Conductivity, 3.05 +Reservoir Porosity, 0.0118 + +Reservoir Model, 1, -- Multiple Parallel Fractures (Gringarten) +Reservoir Volume Option, 1, -- FRAC_NUM_SEP: Reservoir volume calculated with fracture separation and number of fractures as input + +Number of Fractures per Stimulated Well, 150 +Fracture Separation, 9.8255 + +Fracture Shape, 4, -- Rectangular +Fracture Width, 305 +Fracture Height, 100 + +Water Loss Fraction, 0.01 + +Ambient Temperature, 11.1728 + +Utilization Factor, .9 +Plant Outlet Pressure, 2000 psi +Circulation Pump Efficiency, 0.80 + +# *** Well Bores Parameters *** + +Number of Production Wells, 6 +Number of Injection Wells per Production Well, 0.666, -- 5-well bench pattern (3 producers : 2 injectors) + +Nonvertical Length per Multilateral Section, 5000 feet +Number of Multilateral Sections, 0, -- This parameter is set to 0 because the cost of horizontal drilling is included within the 'vertical drilling cost.' This approach allows us to more directly convey the overall well drilling and completion cost. + +Production Flow Rate per Well, 100 + +Production Well Diameter, 8.535, -- Inner diameter of 9⅝ inch casing size +Injection Well Diameter, 8.535, -- See Production Well Diameter + +Production Wellhead Pressure, 303 psi + +Injectivity Index, 1.38 +Productivity Index, 1.13 + +Ramey Production Wellbore Model, True, -- Ramey's model estimates the geofluid temperature drop in production wells +Injection Temperature, 53.6, -- Calibrated with GEOPHIRES model-calculated reinjection temperature +Injection Wellbore Temperature Gain, 3 + +Maximum Drawdown, 0.0025 + +# *** SIMULATION PARAMETERS *** +# ***************************** +Maximum Temperature, 500 +Time steps per year, 12 diff --git a/tests/examples/example_SAM-single-owner-PPA.out b/tests/examples/example_SAM-single-owner-PPA.out index e5ecde31f..c38381974 100644 --- a/tests/examples/example_SAM-single-owner-PPA.out +++ b/tests/examples/example_SAM-single-owner-PPA.out @@ -4,10 +4,10 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.11.18 - Simulation Date: 2026-02-27 - Simulation Time: 13:15 - Calculation Time: 1.201 sec + GEOPHIRES Version: 3.12.1 + Simulation Date: 2026-04-01 + Simulation Time: 09:30 + Calculation Time: 1.322 sec ***SUMMARY OF RESULTS*** @@ -99,6 +99,7 @@ Simulation Metadata ***CAPITAL COSTS (M$)*** + Exploration costs: 3.89 MUSD Drilling and completion costs: 49.18 MUSD Drilling and completion costs per vertical production well: 3.37 MUSD Drilling and completion costs per vertical injection well: 3.37 MUSD @@ -107,7 +108,6 @@ Simulation Metadata Surface power plant costs: 144.44 MUSD Field gathering system costs: 8.50 MUSD Total surface equipment costs: 152.93 MUSD - Exploration costs: 3.89 MUSD Overnight Capital Cost: 215.06 MUSD Inflation costs during construction: 10.75 MUSD Total CAPEX: 225.81 MUSD @@ -122,7 +122,6 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Initial geofluid availability: 0.19 MW/(kg/s) Maximum Total Electricity Generation: 59.02 MW Average Total Electricity Generation: 58.87 MW @@ -316,6 +315,8 @@ PPA revenue ($) 0 34,284,397 34,4 Electricity to grid (kWh) 0 428,554,957 431,240,089 432,051,822 432,530,792 432,865,667 433,120,646 433,325,167 433,495,101 433,639,945 433,765,810 433,876,853 433,976,022 434,065,480 434,146,861 434,221,417 434,290,137 434,353,843 434,413,216 434,468,735 434,518,614 Present value of annual costs ($) 230,967,711 + +Present value of annual energy costs ($) 230,967,711 Present value of annual energy nominal (kWh) 3,643,623,190 LCOE Levelized cost of energy nominal (cents/kWh) 6.34 diff --git a/tests/geophires_monte_carlo_tests/test_geophires_monte_carlo.py b/tests/geophires_monte_carlo_tests/test_geophires_monte_carlo.py index f958e65d5..367373e1d 100644 --- a/tests/geophires_monte_carlo_tests/test_geophires_monte_carlo.py +++ b/tests/geophires_monte_carlo_tests/test_geophires_monte_carlo.py @@ -165,9 +165,11 @@ def test_hip_ra_monte_carlo(self): # changes), then it probably means the expected range or settings file need to be adjusted to 'guarantee' # the results can be confidently asserted. (Such as in # https://github.com/NREL/GEOPHIRES-X/pull/178/commits/ec4db42fca5a90715ceb5143e18315d5f3d782b7) - # Failure 2025-04-17, noting here in comment but not changing value for now: + # Failure 2025-04-17: # https://github.com/softwareengineerprogrammer/GEOPHIRES/actions/runs/14523599534/job/40750024435?pr=69 - self.assertLess(json_result['Producible Electricity']['median'], 1000) + # Failure 2026-03-01: + # https://github.com/softwareengineerprogrammer/GEOPHIRES/actions/runs/23811699882/job/69400186074?pr=144 + self.assertLess(json_result['Producible Electricity']['median'], 1005) self.assertGreater(json_result['Producible Electricity']['median'], 20) def test_hip_ra_x_monte_carlo(self): diff --git a/tests/geophires_x_tests/test_economics_sam.py b/tests/geophires_x_tests/test_economics_sam.py index dd78abce5..b01ad00bd 100644 --- a/tests/geophires_x_tests/test_economics_sam.py +++ b/tests/geophires_x_tests/test_economics_sam.py @@ -12,6 +12,7 @@ import pandas as pd from pint.facets.plain import PlainQuantity +from geophires_x.OptionList import PlantType from geophires_x.Parameter import listParameter from base_test_case import BaseTestCase @@ -25,11 +26,12 @@ get_sam_cash_flow_profile_tabulated_output, _ppa_pricing_model, _get_fed_and_state_tax_rates, - SamEconomicsCalculations, _get_royalty_rate_schedule, _validate_construction_capex_schedule, _calculate_nominal_discount_rate_from_real_and_inflation_pct, + validate_read_parameters, ) +from geophires_x.EconomicsSamCalculations import SamEconomicsCalculations from geophires_x.GeoPHIRESUtils import sig_figs, quantity, is_float # noinspection PyProtectedMember @@ -304,11 +306,30 @@ def r_0(r): if r_0(r) == name )[1:] - def test_only_electricity_end_use_supported(self): - with self.assertRaises(RuntimeError) as e: - self._get_result({'End-Use Option': 2}) + def test_direct_use_heat_end_use_supported(self): + self.assertIsNotNone(self._get_result({'End-Use Option': 2})) + + def test_supported_plant_types(self): + m: Model = self._new_model(self._egs_test_file_path(), {'Print Output to Console': 1}) + supported_plant_types = [ + PlantType.SUB_CRITICAL_ORC, + PlantType.SUPER_CRITICAL_ORC, + PlantType.SINGLE_FLASH, + PlantType.DOUBLE_FLASH, + PlantType.ABSORPTION_CHILLER, + PlantType.INDUSTRIAL, + ] + + for plant_type in supported_plant_types: + m.surfaceplant.plant_type.value = plant_type + + validate_read_parameters(m) # should not raise an exception - self.assertIn('Invalid End-Use Option (Direct-Use Heat)', str(e.exception)) + for plant_type in [it for it in PlantType if it not in supported_plant_types]: + m.surfaceplant.plant_type.value = plant_type + + with self.assertRaises(ValueError): + validate_read_parameters(m) def test_multiple_construction_years(self): construction_years_2: GeophiresXResult = self._get_result( @@ -1321,6 +1342,51 @@ def _row(row_name: str) -> list[float]: self.assertEqual(lcoe_row[0], round(pv_annual_costs_row[0] * 100 / pv_annual_energy_row[0], 2)) + def test_chp_output(self): + r: GeophiresXResult = GeophiresXResult(self._get_test_file_path('../examples/example14_data-center.out')) + + capex_vus = r.result['CAPITAL COSTS (M$)'] + + surface_power_plant_costs_vu = capex_vus['Surface power plant costs'] + + self.assertEqual('MUSD', surface_power_plant_costs_vu['unit']) + + self.assertAlmostEqual(4225, surface_power_plant_costs_vu['value'], places=0) + + self.assertEqual( + surface_power_plant_costs_vu['value'], + sum(capex_vus[it]['value'] for it in ['of which Electrical Plant Cost', 'of which Heat Plant Cost']), + ) + + self.assertAlmostEqual( + capex_vus['Total surface equipment costs']['value'], + sum( + capex_vus[it]['value'] + for it in ['Surface power plant costs', 'Transmission pipeline cost', 'Field gathering system costs'] + ), + places=1, + ) + + opex_vus = r.result['OPERATING AND MAINTENANCE COSTS (M$/yr)'] + total_opex_field_name = 'Total operating and maintenance costs' + + self.assertAlmostEqual( + opex_vus[total_opex_field_name]['value'], + sum(v['value'] if v is not None and k != total_opex_field_name else 0 for k, v in opex_vus.items()), + places=1, + ) + + def test_chp_fixed_plant_cost_requires_electrical_plant_cost_allocation_ratio(self): + with self.assertRaises(RuntimeError) as re: + GeophiresXClient().get_geophires_result( + ImmutableGeophiresInputParameters( + from_file_path=self._get_test_file_path('../examples/example_SAM-single-owner-PPA-7_chp.txt'), + params={'Surface Plant Capital Cost': 200}, + ) + ) + + self.assertIn('CHP Electrical Plant Cost Allocation Ratio is required', str(re.exception)) + @staticmethod def _new_model( input_file: Path, diff --git a/tests/geophires_x_tests/test_options_list.py b/tests/geophires_x_tests/test_options_list.py index 6bfc28d43..3510a1711 100644 --- a/tests/geophires_x_tests/test_options_list.py +++ b/tests/geophires_x_tests/test_options_list.py @@ -34,6 +34,16 @@ def test_equality(self): self.assertEqual(str(EndUseOptions.HEAT), 'EndUseOptions.HEAT') self.assertEqual(str(EndUseOptions.ELECTRICITY), 'EndUseOptions.ELECTRICITY') + def test_is_cogeneration_and_has_electricity_component(self): + self.assertTrue(EndUseOptions.ELECTRICITY.has_electricity_component) + self.assertFalse(EndUseOptions.ELECTRICITY.is_cogeneration_end_use_option) + + self.assertFalse(EndUseOptions.HEAT.has_electricity_component) + self.assertFalse(EndUseOptions.HEAT.is_cogeneration_end_use_option) + + self.assertTrue(EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY.has_electricity_component) + self.assertTrue(EndUseOptions.COGENERATION_BOTTOMING_EXTRA_ELECTRICITY.is_cogeneration_end_use_option) + class WellDrillingCostCorrelationTestCase(BaseTestCase): diff --git a/tests/test_parameter.py b/tests/test_parameter.py index b4b159d27..7c02096f3 100644 --- a/tests/test_parameter.py +++ b/tests/test_parameter.py @@ -3,6 +3,7 @@ import unittest from pathlib import Path +from geophires_x.EconomicsUtils import total_capex_parameter_output_parameter from geophires_x.Model import Model from geophires_x.Parameter import ConvertUnitsBack from geophires_x.Parameter import OutputParameter @@ -228,6 +229,13 @@ def _cash_flow_row(r: GeophiresXResult, row_name: str) -> str: self.assertEqual('kilogram', total_avoided_carbon_emissions_vu['unit']) self.assertEqual(int(total_avoided_carbon_emissions_vu['value']), total_capacity_payment_revenue_usd) + def test_has_quantity_as_units(self): + param: OutputParameter = total_capex_parameter_output_parameter() + param.CurrentUnits = CurrencyUnit.MDOLLARS + param.value = 1 + self.assertEqual(1e6, param.quantity('USD').magnitude) + self.assertEqual(1e6, param.quantity(CurrencyUnit.DOLLARS).magnitude) + # noinspection PyMethodMayBeStatic def _new_model(self) -> Model: stash_cwd = Path.cwd()