SAM Economic Models¶
GEOPHIRES SAM Economic Models leverage NREL’s SAM Financial Models by transforming GEOPHIRES parameters into SAM parameters and running the corresponding SAM model with PySAM.
SAM Single Owner PPA¶
Corresponding SAM Financial Model: Power Purchase Agreement (PPA): Single owner
Parameters¶
The following table describes how GEOPHIRES parameters are transformed into SAM parameters, as implemented in EconomicsSam.py. (Note that the source code implementation determines actual behavior in the case of any discrepancies.)
GEOPHIRES Parameter(s) |
SAM Category |
SAM Input(s) |
SAM Module(s) |
SAM Parameter Name(s) |
Comment |
---|---|---|---|---|---|
|
Generation Profile |
|
|
|
|
|
Generation Profile |
|
|
|
|
|
AC Degradation |
|
|
|
Percentage difference of each year’s |
{ |
Installation Costs |
|
|
|
|
|
Operating Costs |
|
|
|
|
|
Operating Costs |
|
|
|
The royalty is modeled as a tax-deductible variable operating expense. GEOPHIRES calculates a schedule of $/MWh values based on the PPA price and Royalty Rate for each year, with optional escalation and cap (maximum). This ensures the total annual expense in SAM accurately matches the royalty payment due on gross revenue. |
|
Financial Parameters → Analysis Parameters |
|
|
|
|
|
Financial Parameters → Analysis Parameters |
|
|
|
|
|
Financial Parameters → Analysis Parameters |
|
|
|
|
|
Financial Parameters → Project Tax and Insurance Rates |
|
|
|
GEOPHIRES does not have separate parameters for federal and state income tax so the rates are split from the combined rate based on an assumption of a maximum federal tax rate of 21% and the residual amount being the state tax rate. |
|
Financial Parameters |
|
|
|
|
|
Financial Parameters → Project Term Debt |
|
|
|
|
|
Financial Parameters → Project Term Debt |
|
|
|
|
|
Revenue |
|
|
|
GEOPHIRES’s pricing model is used to create a PPA price schedule that is passed to SAM. |
|
Revenue → Capacity Payments |
|
|
|
|
|
Incentives → Investment Tax Credit (ITC) |
|
|
|
Note that unlike the BICYCLE Economic Model’s |
|
Incentives → Production Tax Credit (PTC) |
|
|
|
|
|
Incentives → Production Tax Credit (PTC) |
|
|
|
|
|
Incentives → Production Tax Credit (PTC) |
|
|
|
If |
|
Incentives → Investment Based Incentive (IBI) |
|
|
|
Limitations¶
Only Electricity end-use is supported
Only 1 construction year is supported. Note that the
Inflation Rate During Construction
parameter can be used to partially account for longer construction periods.Add-ons with electricity and heat are not currently supported. (Add-ons CAPEX, OPEX, and profit are supported.)
Using SAM Economic Models with Existing GEOPHIRES Inputs¶
In many cases, all you need to do to use SAM Economic Models for your existing GEOPHIRES inputs is to change the
Economic Model
parameter value.
For example, if your GEOPHIRES .txt
file contained the following:
# *** Financial Parameters ***
Economic Model, 2, -- Standard Levelized Cost Model
Discount Rate, .05
Plant Lifetime, 25
You would change it to:
# *** Financial Parameters ***
Economic Model, 5, -- SAM Single Owner PPA Economic Model
Discount Rate, .05
Plant Lifetime, 25
For inputs with the BICYCLE economic model, such as the following:
# *** Financial Parameters ***
Economic Model, 3, -- BICYCLE
Inflated Equity Interest Rate, .08
Plant Lifetime, 30
Change Economic Model
and replace Inflated Equity Interest Rate
with a suitable Discount Rate
and
Inflation Rate
:
# *** Financial Parameters ***
Economic Model, 5, -- SAM Single Owner PPA Economic Model
Discount Rate, .08
Inflation Rate, .03
Plant Lifetime, 30
Re-creating SAM Economic Model Results in the SAM Desktop Application¶
First, open src/geophires_sam_economics/Generic_400_MWe.sam
in the SAM desktop application.
Next, run GEOPHIRES for your input, e.g.:
python -mgeophires_x my-geophires-input.txt
Then check src/geophires_x/all_messages_conf.log
for the SAM Economics Parameter Mapping entry:
23-05-2025 10:09:35 : INFO : EconomicsSam : calculate_sam_economics : 151 : (Process Details : (1378, MainProcess), Thread Details : (8589068352, MainThread)): SAM Economics Parameter Mapping:
----------------- -------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SAM Module Parameter Value
Custom Generation analysis_period 20
Custom Generation user_capacity_factor 90.0
Utility Rate inflation_rate 2.0
Utility Rate degradation [1.2734946600673935, 0.7001040275842613, 0.5267634676194525, 0.4244824247238818, 0.3529717582311231, 0.29852256883429373, 0.2548483024454293, 0.21855974702202877, 0.18762922644042462, 0.1607514026827296, 0.13703877682895466, 0.11586181507372084, 0.09675857340703789, 0.07938054662917803, 0.06345865490418974, 0.0487810281945756, 0.03517801101748528, 0.02251175220012943, 0.010668799824934945, 0.0]
Single Owner analysis_period 20
Single Owner total_installed_cost 264606243.76608825
Single Owner om_fixed [7193902.821741002]
Single Owner om_fixed_escal -2.0
Single Owner system_capacity 59020.69007804236
Single Owner federal_tax_rate [21.0]
Single Owner state_tax_rate [7.0]
Single Owner itc_fed_percent [30.0]
Single Owner property_tax_rate 0.0
Single Owner ppa_price_input [0.08, 0.08, 0.08322, 0.08644, 0.08966, 0.09288, 0.0961, 0.09932, 0.10254, 0.10576, 0.10898000000000001, 0.1122, 0.11542, 0.11864, 0.12186, 0.12508, 0.1283, 0.13152, 0.13474, 0.13796]
Single Owner debt_percent 40.0
Single Owner real_discount_rate 8.0
Single Owner term_tenor 20
Single Owner term_int_rate 5.0
Single Owner ibi_oth_amount 0.0
----------------- -------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
You can then manually enter the parameters from the logged mapping into the SAM desktop app.

Add-Ons¶
SAM Economic Models incorporate add-ons directly, unlike other GEOPHIRES economic models, which calculate separate extended economics. Total Add-on CAPEX is added to Total CAPEX. Total Add-on OPEX is added to Total operating and maintenance costs. Total AddOn Profit Gained per year is treated as fixed amount Capacity payment revenue.
Add-ons CAPEX, OPEX, and profit are supported. Add-ons with electricity and heat are not currently supported, but may be supported in the future.
Royalties¶
SAM Economic Models can model a royalty agreement where a percentage of the project’s gross revenue is paid to a third
party (the “royalty holder”). This feature is enabled by providing the Royalty Rate
parameter.
The royalty payment is modeled as a tax-deductible variable operating expense from the perspective of the project developer (Single Owner). This reduces the developer’s taxable income and ensures their final after-tax metrics (NPV, IRR, etc.) are calculated accurately.
This is implemented by having GEOPHIRES create a year-by-year schedule for SAM’s Variable operating cost (
om_production
) input.
The value for each year is calculated based on that year’s PPA price and the user-provided Royalty Rate
, ensuring the
expense in SAM matches the royalty due on gross revenue.
Input Parameters:
Royalty Rate
: The percentage of the project’s gross annual revenue paid to the royalty holder. It can be optionally escalated by providingRoyalty Rate Escalation
and capped withRoyalty Rate Maximum
.Royalty Holder Discount Rate
(optional): The discount rate used to calculate the Net Present Value (NPV) of the royalty holder’s income stream. This is separate from the project’s main discount rate to reflect the different risk profiles of the two parties.
Output Parameters:
Average Annual Royalty Cost
: The developer’s average annual royalty expense over the project’s lifetime after construction is complete (Year 1). The same value is also output asRoyalty Holder Average Annual Revenue
. The individual royalties for each year are included in the cash flow line itemO&M production-based expense ($)
.Royalty Holder Total Revenue
: The total gross (pre-tax), undiscounted royalty income over the project’s lifetime.Royalty Holder NPV
: The pre-tax Net Present Value of the royalty holder’s income stream, calculated using theRoyalty Holder Discount Rate
. This is a pre-tax value because the model does not account for the royalty holder’s specific tax liabilities.
Examples¶
Case Study: 500 MWe EGS Project Modeled on Fervo Cape Station¶
See Case Study: 500 MWe EGS Project Modeled on Fervo Cape Station.