Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed Internal Rate versus Discount Rate #301

Closed
NicholasFry opened this issue Oct 8, 2024 · 6 comments · Fixed by #304
Closed

Fixed Internal Rate versus Discount Rate #301

NicholasFry opened this issue Oct 8, 2024 · 6 comments · Fixed by #304
Assignees
Labels
question Further information is requested

Comments

@NicholasFry
Copy link

Hi all,
I want to point out that the standardized cost model is using two different inputs for discount rate. This could mislead the user, such as myself, into thinking that the discount rate is being used in the NPV formula, as is the norm. Instead, under the economics.py script, discountrate and FixedInternalRate are defined separately. At present the discount rate is only used in discount vector, which separately tabulates the LCOE, LCOH, LCOC. Unless there is an objective reason that exceeds my understanding of project economics, discountrate should be equal to FixedInternalRate.

@softwareengineerprogrammer
Copy link
Collaborator

Relevant code for reference:

Fixed Internal Rate:

self.FixedInternalRate = self.ParameterDict[self.FixedInternalRate.Name] = floatParameter(
"Fixed Internal Rate",
DefaultValue=6.25,
Min=0.0,
Max=100.0,
UnitType=Units.PERCENT,
PreferredUnits=PercentUnit.PERCENT,
CurrentUnits=PercentUnit.PERCENT,
ErrMessage="assume default for fixed internal rate (6.25%)",
ToolTipText="Fixed Internal Rate (used in NPV calculation)"
)

Discount Rate:

self.discountrate = self.ParameterDict[self.discountrate.Name] = floatParameter(
"Discount Rate",
DefaultValue=0.07,
Min=0.0,
Max=1.0,
UnitType=Units.PERCENT,
PreferredUnits=PercentUnit.TENTH,
CurrentUnits=PercentUnit.TENTH,
ErrMessage="assume default discount rate (0.07)",
ToolTipText="Discount rate used in the Standard Levelized Cost Model"
)

softwareengineerprogrammer added a commit to softwareengineerprogrammer/GEOPHIRES-X that referenced this issue Oct 10, 2024
…es fixes/tweaks to outputting interest rate unit/percent. TODO: resolve missing interest rate percent sign in SUTRAExample1.out; set discount rate/fixed internal rate to same value if exactly one is provided
@softwareengineerprogrammer
Copy link
Collaborator

softwareengineerprogrammer commented Oct 10, 2024

@NicholasFry Can you confirm that the highlighted diff in this commit to set Discount Rate and Fixed Internal Rate to the same default value is aligned with the issue as you're describing it? softwareengineerprogrammer@14bc59d#diff-372dea2554a92733824c98709c9bdb5720c183c31762c3795bd3990f069a2f24R841-L1392

(Assuming it is, I will start putting together a PR with it + changes to synchronize DR & FIR iff exactly one is provided, and otherwise warn the user that providing differing values is probably incorrect/inconsistent)

@softwareengineerprogrammer
Copy link
Collaborator

@kfbeckers Can you confirm that the premise of this issue is correct in that Discount Rate and Fixed Internal Rate should, conceptually, always be the same value?

@NicholasFry
Copy link
Author

NicholasFry commented Oct 11, 2024 via email

@softwareengineerprogrammer
Copy link
Collaborator

softwareengineerprogrammer commented Oct 16, 2024

Implementation steps:

  1. Step 1: Set DR/FIR to same default value of 6.25%: Set fixed internal rate default value to same as discount rate softwareengineerprogrammer/GEOPHIRES-X#37
  2. Step 2: Synchronize DR/FIR if one (and only one) is provided; emit corresponding logs to inform user: Synchronize discount rate and fixed internal rate automatically #304 (Synchronize discount rate and fixed internal rate automatically softwareengineerprogrammer/GEOPHIRES-X#39)
  3. Confirm default value of 7% is correct/appropriate: NREL 2024 ATB lists 7% for geothermal https://atb.nrel.gov/electricity/2024/financial_cases_&_methods:
    image

@softwareengineerprogrammer
Copy link
Collaborator

Steps to resolve are now complete with merge of #301. Thanks for bringing this to our attention @NicholasFry!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
3 participants