EnergyInnovation / eps-us

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

Remove energy suppliers from "cash flow entities" subscript (EDIT: only in input variables) #135

Closed jrissman closed 3 years ago

jrissman commented 3 years ago

We currently have nine elements of the "cash flow entity" subscript: government, nonenergy industries, labor and consumers, foreign entities, electricity suppliers, coal suppliers, natural gas and petroleum suppliers, biomass and biofuel suppliers, and other energy suppliers. We used these five divisions to report direct cash flow impacts on these industries at least as long ago as EPS 2.0.0.

With the addition of the Input-Output model in EPS 3.0.0, these five divisions were no longer satisfactory for calculating economic impacts, because they could not be mapped neatly onto ISIC codes. So we instead assign revenue from individual fuel types (which are highly disaggregated) to ISIC codes. We formerly used some ratios to do this (e.g. x% of the NGPS cash flow entity's revenue is due to natural gas), but that method turned out to have problems, as highlighted in issue #131. In response to issue #131, the approach was changed to use the cash flows assigned to fuel types directly as inputs for the IO model, no longer making use of the five energy supplier cash flow entities.

It doesn't make much sense to divide financial impacts on energy suppliers up into two different sets of buckets (five cash flow entity buckets and up to 21 fuel buckets), and then go to pains to make sure they are equal, and use them in different places in the model. It would be cleaner to use only the fuel-based buckets, which are sufficiently disaggregated for every purpose we need. This would eliminate excess calculations, making the model easier to understand, and reduce the odds of bugs being introduced in the future (i.e. when a new policy causes a cash flow change to a fuel-supplying entity, and we fail to remember to carry that change through to the fuel buckets).

Things to do:

In addition to simplifying and improving the model code, this change would simplify input data collection by no longer asking for obscure data, like the fraction of all trucks owned by the NGPS industry, or the fraction of all buildings owned by electricity suppliers.

jrissman commented 3 years ago

Note that we might still want to keep the "Nonenergy Industries" cash flow entity as "Nonenergy Industries," rather than changing it to "Industry," because the cash flows associated with the energy industries will be stored in the fuel type buckets, and it is normally not necessary to store the same impacts in two places. (But in that case, we might make an exception for certain, very minor things like the buildings or vehicles owned by the energy industries, which might have to go into the Nonenergy Industries bucket.)

Alternatively, consider whether it is better to change the "Nonenergy Industries" cash flow entity into "Industry" instead. This has its own implications and required work, such as changing graphs that currently rely on the "Non-energy Industries" entity to instead add up impacts from the non-energy industry ISIC codes. Look carefully through the "Industry - Cash Flows" sheet and the "Cross-Sector Totals" sheet at the many variables and calculations that are only for non-energy industries, and make sure they will still work right even when this cash flow entity is changed to "Industry."

robbieorvis commented 3 years ago

Just a note that the we may want to return to this once we significantly expand the industries broken out in the model.


Robbie Orvis Director of Energy Policy Design Phone: 415-799-2171 98 Battery Street, Suite 202 San Francisco, CA 94111 www.energyinnovation.orghttp://www.energyinnovation.org/ [cid:image001.jpg@01D6E59A.58A9B6D0]


Check out our new book, Designing Climate Solutions: A Policy Guide for Low-Carbon Energyhttps://www.amazon.com/Designing-Climate-Solutions-Policy-Low-Carbon/dp/1610919564 Available wherever books are sold

[Policy Design book cover]

From: Jeff Rissman notifications@github.com Sent: Thursday, January 7, 2021 10:07 PM To: Energy-Innovation/eps-us eps-us@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: Re: [Energy-Innovation/eps-us] Remove energy suppliers from "cash flow entities" subscript (#135)

Note that we might still want to keep the "Nonenergy Industries" cash flow entity as "Nonenergy Industries," rather than changing it to "Industry," because the cash flows associated with the energy industries will be stored in the fuel type buckets, and it is normally not necessary to store the same impacts in two places. (But in that case, we might make an exception for certain, very minor things like the buildings or vehicles owned by the energy industries, which might have to go into the Nonenergy Industries bucket.)

Alternatively, consider whether it is better to change the "Nonenergy Industries" cash flow entity into "Industry" instead. This has its own implications and required work, such as changing graphs that currently rely on the "Non-energy Industries" entity to instead add up impacts from the non-energy industry ISIC codes. Look carefully through the "Industry - Cash Flows" sheet and the "Cross-Sector Totals" sheet at the many variables and calculations that are only for non-energy industries, and make sure they will still work right even when this cash flow entity is changed to "Industry."

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/Energy-Innovation/eps-us/issues/135#issuecomment-756518202, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AK5N6SN6SBQTZVLRKAPM353SYZZEFANCNFSM4VZ3AYKA.

jrissman commented 3 years ago

I looked at this a bit today. Here is the workplan I devised:

At this point, I think we will no longer be using the energy supplier cash flow entity subscript entries for any meaningful purpose, and we'll still be producing the same outputs. Then:

Notes

Note that it may be tempting to think you can skip assigning cash flow impacts to fuel types and instead assign directly to ISIC codes, because the fuel types are mapped onto ISIC codes for input to the I/O model. However, doing this would lose some existing distinctions that are important when reporting direct cash flow impacts. For example, in ISIC codes, hydrogen suppliers are part of the "energy pipelines and gas processing" ISIC code, because that ISIC code best estimates hydrogen suppliers' properties like jobs intensity, which industries supply the hydrogen suppliers, etc. But when examining cash flow impacts, that ISIC code is dominated by natural gas. We currently break out the energy suppliers in a way that keeps hydrogen separate from natural gas, and we want to preserve that. This is one example of why we cannot assign energy supplier impacts to energy supplier ISIC codes directly in each sector without assigning the impacts to particular fuel types. (Note that further disaggregating ISIC codes is not a solution because no economic data in ISIC format exists for sectors that hardly exist today, like hydrogen suppliers.)

Note that this workplan maintains "Non-Energy Industries" cash flow entity. It does not change "Non-Energy Industries" to "Industry" (or, a better name would be "Domestic Industry"). It simply substitutes fuel categories for the existing energy supplier cash flow entities. If you might want to change "Non-Energy Industries" to "Domestic Industry," I think it is better to complete this issue using the workplan above, then re-evaluate what would be required and whether it offers benefit. It is too difficult to foresee it by looking at the model in its current state. Remember that energy industries are often handled differently from non-energy industries in the Industry sector to avoid double-counting certain cash flows, and this might add complexity of cause problems when you try to assign those cash flows to a "Domestic Industry" subscript element instead of a "Non-Energy Industries" subscript.

After fully scoping what to do here, I'm no longer convinced it is much of a simplification or worth the effort. This workplan would eliminate the energy supplier cash flow entities from the "Cash Flow Entity" subscript and doesn't add any new subscripts or subscript elements, which is nice. It also makes it easier to adjust which fuels are grouped together in the Direct Cash Flow Change output graphs. On the downside, we add two new columns totaling expenditures by fuel to the Cross-Sector Totals tab, and the equations on the Cash Flows sheet within each sector might be slightly more complicated than they are today, rather than less. It might be better to keep the existing approach.

A narrower fix that keeps existing model structure but removes the energy supplier cash flow entities from the InputData Excel and CSV files (so people no longer have to try to find obscure and unimportant values) is to subscript those particular input variables by non-energy-supplier cash flow entity rather than by cash flow entity, and then assign shares of the quantities (like vehicles and buildings owned) to energy suppliers on the basis of output (e.g. BObIC and fuel production). I'd likely lean toward doing that narrow fix instead of the full removal of the energy supplier cash flow entities. The energy supplier cash flow entities turn out to be useful internally, and they won't bother anyone if no input data are ever requested for them.

jrissman commented 3 years ago

As of 3.2, only the following six input variables are subscripted by cash flow entity, and most of them only use zeroes for the energy supplier cash flow entities. The ones that could use a non-zero value could be handled better by calculating internally rather than asking for input data for the energy suppliers. I may move ahead with removing the energy supplier cash flow entities from these variables without updating the internal structure to remove them from the cash flow entity subscript (i.e. doing the "narrower fix" described in the last paragraph of the previous post in this thread).

elec\DRCo
bldgs\FoBObE
land\FoFObE
io-model\FoGPbEaIC
trans\FoVObE
io-model\PoNDHbE
jrissman commented 3 years ago

Finished in commit 712bfd3. I went with the approach of removing energy supplier cash flow entities from input variables but not removing them from the Cash Flow Entity subscript entirely, for reasons detailed above. Where they formerly had a non-zero value, they now use an internal calculation, which will be more accurate than the old approach.