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

Financing period in OSeMOSYS #108

Open
emmajjrichardson opened this issue Nov 29, 2024 · 0 comments
Open

Financing period in OSeMOSYS #108

emmajjrichardson opened this issue Nov 29, 2024 · 0 comments

Comments

@emmajjrichardson
Copy link

Hello team, I’m getting in touch to suggest adding a financing period parameter to OSeMOSYS.

The OSeMOSYS code assumes that technologies' financing periods are equal to their lifetimes. This is reflected in the CRF and PVA equations, which spread capital investment over the entire asset lifetime:

param CapitalRecoveryFactor{r in REGION, t in TECHNOLOGY} :=
	(1 - (1 + DiscountRateIdv[r,t])^(-1))/(1 - (1 + DiscountRateIdv[r,t])^(-(OperationalLife[r,t])));
param PvAnnuity{r in REGION, t in TECHNOLOGY} :=
	(1 - (1 + DiscountRate[r])^(-(OperationalLife[r,t]))) * (1 + DiscountRate[r]) / DiscountRate[r];

However, @trevorb1 mentioned to me that energy technologies’ financing periods are often shorter than their operational lifetimes. This was corroborated by ChatGPT, although I did not find specific reports on this.

I ran a sensitivity analysis testing the effect of financing period on undiscounted capital cost. The results suggested that accounting for financing periods could change undiscounted capital cost by up to +/- 20%, depending on the technology (and its financing conditions), compared to the current setup. As this is a non-trivial effect, we wondered if it might be helpful to introduce a financing period parameter. This would also allow financing period to be considered alongside discount rates as a source of uncertainty around financing conditions, with its policy implications.

The adjustment could be:
Add the parameter:

param FinPeriod{r in REGION, t in TECHNOLOGY}, default OperationalLife[r,t];

And include in the CRF and PVA equations, replacing OperationalLife:

param CapitalRecoveryFactor{r in REGION, t in TECHNOLOGY} :=
	(1 - (1 + DiscountRateIdv[r,t])^(-1))/(1 - (1 + DiscountRateIdv[r,t])^(-(FinPeriod[r,t])));
param PvAnnuity{r in REGION, t in TECHNOLOGY} :=
	(1 - (1 + DiscountRate[r])^(-(FinPeriod[r,t]))) * (1 + DiscountRate[r]) / DiscountRate[r];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant