Closed jrissman closed 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."
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.
I looked at this a bit today. Here is the workplan I devised:
On the Cross-Sector Totals
sheet, add calculations of change in energy expenditures by fuel and change in non-energy expenditures by fuel, to match the existing change in revenue by fuel calculation. Run the model and check to ensure equality between the change in expenditures by fuel values and the change in expenditures by energy supplier cash flow entity (similar to the check on the debugging page that checks for equality of changes in revenue). This ensures you correctly captured all of the change in expenditure impacts currently being assigned to cash flow entities.
Make variables that divide existing Change in Fuel Industry Revenue by Fuel
variable into domestic revenue and export revenue components.
Move calculations from the Cross-Sector Totals sheet to each sector's sheet so that on the Cross-Sector Totals sheet, the only thing happening is adding up a single variable from each sector (subscripted by fuel) for change in revenue, and similarly one variable per sector for change in energy expenditures, and one per sector for change in non-energy expenditures. We shouldn't be doing calculations on the Cross-Sector Totals sheet itself other than to add up the values from different sectors. Highlight the relevant revenue/expenditure totals by fuel in orange on each sector's Cash Flow sheet.
For calculations that assign a share of some minor changes in expenditures to the energy supplier cash flow entities, such as changes in their costs to operate their buildings and vehicles: first assign these changes to the non-energy industries cash flow entity. We are going to eliminate the input data rows/columns for the share of vehicles and buildings owned by the energy supplier cash flow entities, so these changes in expenditures need to be assigned to the non-energy industries category for now. We can optionally break them out later (as noted below).
Adjust the checks on the Debugging Assistance
sheet that currently rely on energy supplier cash flow entities to instead rely on the sum across all fuel types (and exclude energy supplier cash flow entities). Ensure that the EPS still passes all debugging checks on the Debugging Assistance
sheet.
Optionally (for better accuracy), move a share of the minor changes in non-energy industry cash flows (e.g. change in expenditures from operating their own buildings and vehicles, etc.) to the variables that disaggregate change in cash flows by fuel type. This means that these impacts will be assigned to the relevant energy suppliers rather than grouped into the non-energy industries subscript. You can do this using a share of BObIC
output for the relevant fuel suppliers, and within a fuel supplier, divide up by fuel type using ratios of fuel production from the Fuels
sheet. This is a lot of complexity to move some very minor cash flows, so it may not be worth it. If you do this, recheck the Debugging Assistance
sheet and make sure all checks still pass.
Adjust the output graphs that currently draw from the energy supplier cash flow entities to instead sum across the relevant fuel types from the new "change in energy expenditures by fuel" and "change in non-energy expenditures by fuel" variables. Run the model and ensure the "Direct Change in Cash Flow" output graphs still show the same results as before. (If you want to change which fuels are grouped on the graphs, such as breaking out hydrogen suppliers, you can do so later, but don't do that until work on this issue is done and this issue is closed.)
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:
In the Subscripts control panel, remove the five energy supplier cash flow entity entries from the "Cash Flow Entity" subscript. Adjust sub-ranges as needed.
Resolve all model errors. There will be some variables on each sector's "Cash Flow" sheet that assign cash flow impacts to energy supplier cash flow entities. These equations can generally be deleted. Leave the variables there that assign cash flow impacts to cash flow entities other than energy suppliers. When a minor cash flow is being assigned to energy supplier cash flow entities (such as changes in the costs of operating the buildings or vehicles owned by these entities), we have to assign them instead to the "Non-Energy Industries" entity, because we're going to be eliminating the input data for the share of buildings, vehicles, etc. owned by the energy supplier cash flow entities.
Ensure the Debugging Assistance
sheet checks still pass.
Check for any clean-up needed, such as using uniform variable name conventions for cash flow impacts on fuel suppliers when subscripted by fuel.
From InputData Excel and CSV files, remove the five energy supplier rows/columns and associated calculations from any applicable variables. You can get Vensim to produce a list of these for you by checking out an earlier commit (before any work on this issue was done), adding an extra entry to the Cash Flow Entities subscript, and noting one-by-one which files produce errors when you error check the model. Add a row of dummy data to each discovered file to let Vensim's error check proceed to flag the next file.
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.
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
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.
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:
Transportation Sector Change in Nonenergy Industry Expenditures by ISIC Code
currently omits energy supplying industries, but it would be changed to include these industries, because they would no longer be their own cash flow entities.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.