EnergyInnovation / eps-us

Energy Policy Simulator - United States
GNU General Public License v3.0
22 stars 7 forks source link

Add demand-driven fuel price changes #231

Closed robbieorvis closed 1 year ago

robbieorvis commented 2 years ago

Currently, the EPS only estimates changes in fuel prices for sectors where costs are calculated endogenously: electricity, district heat, and hydrogen.

I think we probably avoided doing this for other fuels historically given the difficulty of doing so.

However, I recently discovered a dataset from EPA that has demand and price curves for their own power sector modeling, which is available here: https://www.epa.gov/power-sector-modeling/documentation-epas-power-sector-modeling-platform-v6 (see downloadable Excel files at the bottom for supply curves; the accompanying documentation can be used to identify the non-power sector demand to get the totals.

Although this is a power sector model dataset, the price curves reflect aggregate demand for fuels and data appears to be available for multiple fuels, including coal, gas, and diesel. Fortunately, the curves also look fairly linear, though there are curves for different years and time horizons reflecting near-term and long-term supply-demand-price elasticities. It also has the benefit of being an approach used by EPA, so it has some credentials behind it.

With this dataset, I'm pretty confident we could develop a procedure to estimate fuel price changes in the EPS based on changes in demand for fuels. This will become increasingly important as we re-structure the building sector, add economic-driven capacity additions in the power sector, and possibly revamp the industry sector to allow for decision making when equipment retires, because the fuel price will play a large impact on what is economically viable.

I'd like to explore how we could use these datasets to build some resource curves in the model to estimate price changes.

jrissman commented 2 years ago

Changing fuel costs in response to policy-driven changes in costs experienced by fuel producers is already in the model. You can customize which fuels are affected using the control setting BAEPAbCiPC Boolean Are Energy Prices Affected by Changes in Production Costs.

Our existing procedure doesn't rely on introducing exogenous resource availability curves, so it doesn't increase out input data requirements and applies globally. That makes our existing procedure potentially better than one that requires exogenous curve data, as EPA data aren't going to be valid outside the U.S.

There is one easy thing we could do to improve our existing procedure. We could change BAEPAbCiPC Boolean Are Energy Prices Affected by Changes in Production Costs to not be a Boolean and instead to be the percentage of production cost changes that affect energy prices, because right now, it's effectively locked to a 100% pass-through, but this would be easy to customized on a per-fuel basis by turning that Boolean into a percentage that is between 0% and 100%. We'd change it from a control lever to a standard input data variable as well, given that it would be intended to be used routinely rather than as a special control setting.

This has nice backward compatibility because for a region where we want to keep the current behavior, we just leave it set to 0% for most fuels and 100% for the energy carriers. But it would let us get much more fine-grained customization for regions where sufficient data are available. For instance, you said the relationships you saw in the U.S. data are linear, which sounds like they could be well-represented by a percentage cost passthrough, with the percentage based on the slope of that line.

robbieorvis commented 2 years ago

Wait, I thought we don’t calculate this for fuels that aren’t produced in the model? Or are you saying we just calculate policy driven cost changes (e.g. passing on compliance costs)? If it’s the latter, that’s different from what I’m talking about, which is related to supply and demand writ large, not compliance costs.

jrissman commented 2 years ago

When you refer to price changes due to "supply and demand writ large, not compliance costs," do you mean changes in supply and demand caused by the user's policy package (for instance, a carbon price causes fuel demand to go down), or do you mean changes in fuel supply and demand caused by global market forces, such as recessions, wars, technological advancement, income growth in low- and medium-income nations, etc.?

robbieorvis commented 2 years ago

I am talking about the former: changes in fuel consumption that result from user policy scenarios. For example, consider a policy scenario where a user electrifies the building stock, which dramatically cuts down US consumption of natural gas. This would cause natural gas prices to decrease, and we would expect to see an increase in natural gas consumption in other sectors, particularly in the power sector. It would also influence the types of power plants built. This is different than calculating changes in fuel costs due to policies that add costs to production, such as a carbon price or electrification of industry (or CCS), which would also cause fuel price increases.

jrissman commented 2 years ago

Yes, the model already includes changes in fuel suppliers' costs due to changes in demand caused by user policy scenarios. It also factors in changes in exports and imports caused by policy scenarios, which can be important, especially for oil and petroleum products. Here's the relevant part of the code.

ChangeInCosts

jrissman commented 2 years ago

I'm going to put this one on hold and remove the release number, because it's asking for a feature the model already has. If you test the feature and want changes to it, you can note what you need here.

robbieorvis commented 2 years ago

Wow, I didn’t realize that we had that. I will look into it some more and get back to you. We should definitely consider at least turning this on (setting to 1) for the next model update.

robbieorvis commented 2 years ago

Okay, I see the logic, which I’m going to summarize here to make sure I fully understand.

Changes in fuel demand cause changes in fuel production, which in turn causes changes in the consumption of energy (changes in energy expenditures + some nonenergy expenditures) to produce/extract the fuel. Generally speaking, it costs less to extract a unit of fuel than it is worth on the market, e.g. it might cost on average $0.50 to produce an MMBtu of gas but that gas is worth $3/MMBtu on the market (this is because a lot of the fuel is free, captured and burned onsite, and also instances where one fuel (gas) is being used to produce another fuel (gasoline). So in the model, a reduction in demand for a fuel leads to a reduction in energy costs (and sometimes non energy expenditures) to produce the fuel, and since the reduction in fuel costs (negative) is divided by a change in fuel production, we get a negative price. The inverse is true if we have increasing fuel production.

What I’m trying to wrap my head around is whether or not this is a correct representation of how the costs of extraction are determined and whether it accurately represents how fuel costs might change in a world where demand decreases. It may be a fine substitute for now, I’m just not sure. It might be interesting to some comparison to other scenarios from AEO and see if our fuel costs come out reasonably.

Two additional thoughts though: since the curves from the EPA are linear, that implies that the approach we have might be fine. I had thought that maybe the price curve is exponentially increasing, but the EPA data implies otherwise.

Second thought: one issue I do still see is that all petroleum fuels are tied up with natural gas still (because oil and gas suppliers are a single entity). I know we’ve had this for some time and that it is related to ISIC data, but I think we should consider addressing this. One option would be to take the total change in fuel production costs for the NGPS industry, and apply it to each fuels based on the share of fuel reduction from that source, i.e. if natural gas is 98% of the change in fuel production for the NGPS industry, it would get 98% of the change in costs, divided by the fuel production number. That would help address the assignment at least.

In the long run, I think we should consider splitting out these industries, and not just because of the fuel prices calculations. We are increasingly running into issues around the fact that they are combined (for instance in the Canada model), and if we plan to add more detail to refining, it is likely to become increasingly important we separate them. We could add this as a separate issue.

From: Jeff Rissman @.> Sent: Tuesday, May 31, 2022 3:22 PM To: Energy-Innovation/eps-us @.> Cc: Robbie Orvis @.>; Author @.> Subject: Re: [Energy-Innovation/eps-us] Add demand-driven fuel price changes (Issue #231)

I'm going to put this one on hold and remove the release number, because it's asking for a feature the model already has. If you test the feature and want changes to it, you can note what you need here.

— Reply to this email directly, view it on GitHubhttps://github.com/Energy-Innovation/eps-us/issues/231#issuecomment-1142552858, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AK5N6SNH6TLUGVAI25XNGCDVMZRD3ANCNFSM5WNPXF2Q. You are receiving this because you authored the thread.Message ID: @.**@.>>

jrissman commented 1 year ago

For EPS 3.4, Megan updated BAEPAbCiPC Boolean Are Energy Prices Affected by Changes in Production Costs to apply price changes to all fuel types where the fuel has a non-zero cost (except nuclear fuel). Closing this issue.